New order comments box not working
New order comments box not working
Hello,
So, I need another order comments box in the order process system.
In the Phoenix version that I'm using, the order comments box appears in the checkout_shipping, checkout_payment & checkout_confirmation pages.
I have hard coded the new comment box (comments_new)into checkout_shipping.php, checkout_payment.php and checkout_confirmation.php. Also, in checkout_process.php ($sql_data_array array, email confirmation and unregister session sections).
I have also added a new column (comments_new) to the orders_status_history table in the database.
The comments_new box appears in all the pages like it's supposed to.
The problem is the texts entered into the comments_new box on the checkout_shipping page do not appear on the checkout_payment page and neither in the comments_new column in the database table.
Have I missed defining the new variable somewhere else I needed to? May be the session or something else? Please advise.
Thank you.
Store is running:
OSCOM CE Phoenix v1.0.5.0
MySQL 5.5.5-10.2.31-MariaDB
7.2.5 (Zend 3.2.0)
So, I need another order comments box in the order process system.
In the Phoenix version that I'm using, the order comments box appears in the checkout_shipping, checkout_payment & checkout_confirmation pages.
I have hard coded the new comment box (comments_new)into checkout_shipping.php, checkout_payment.php and checkout_confirmation.php. Also, in checkout_process.php ($sql_data_array array, email confirmation and unregister session sections).
I have also added a new column (comments_new) to the orders_status_history table in the database.
The comments_new box appears in all the pages like it's supposed to.
The problem is the texts entered into the comments_new box on the checkout_shipping page do not appear on the checkout_payment page and neither in the comments_new column in the database table.
Have I missed defining the new variable somewhere else I needed to? May be the session or something else? Please advise.
Thank you.
Store is running:
OSCOM CE Phoenix v1.0.5.0
MySQL 5.5.5-10.2.31-MariaDB
7.2.5 (Zend 3.2.0)
- burt
- Core Team
- Posts: 4551
- Joined: Tue Oct 29, 2019 9:37 am
- Phoenix Version: v1.1.0.8
- : Buy Me A Beverage
- Has thanked: 252 times
- Been thanked: 412 times
Re: New order comments box not working
Look for everywhere where the word `comments` is found.
You've likely missed a few, most likely carrying the session.
I wonder why you could not just use one input box for everything?
You've likely missed a few, most likely carrying the session.
I wonder why you could not just use one input box for everything?
I am not here to build for you.
I am here to build with you. Let's help each other.
I am here to build with you. Let's help each other.
Re: New order comments box not working
I did that using $comments. I guess I must have missed a few like you said. I will do it again using just "comment" like you suggested.
The existing input box should have been sufficient in most cases but the information the new box is needed for is specific and this is just to avoid mistakes being made by users thinking the information is already part of the information given in the first input box.
Thank you so much Burt!
Re: New order comments box not working
As suspected, I did miss the account_historyinfo.php.
The input texts now show up in checkout_shipping, checkout_payment but not in checkout_confirmation .
Below is the section where I think the problem lies:
The problem I'm still having with comments_new is:<?php
if (tep_not_null($order->info['comments'])) {
?>
<h5 class="mb-1"><?php echo HEADING_ORDER_COMMENTS . '<small><a class="font-weight-lighter ml-2" href="' . tep_href_link('checkout_payment.php', '', 'SSL') . '">' .TEXT_EDIT . '</a></small>'; ?></h5>
<div class="border mb-3">
<ul class="list-group list-group-flush">
<li class="list-group-item">
<?php
echo '<i class="fas fa-comments fa-fw fa-3x float-right text-black-50"></i>';
echo nl2br(tep_output_string_protected($order->info['comments'])) . tep_draw_hidden_field('comments', $order->info['comments']);
?>
</li>
</ul>
</div>
<?php
}
if (tep_not_null($order->info['comments_new'])) {
?>
<h5 class="mb-1"><?php echo HEADING_ORDER_COMMENTS_NEW . '<small><a class="font-weight-lighter ml-2" href="' . tep_href_link('checkout_payment.php', '', 'SSL') . '">' .TEXT_EDIT . '</a></small>'; ?></h5>
<div class="border mb-3">
<ul class="list-group list-group-flush">
<li class="list-group-item">
<?php
echo '<i class="fas fa-comments fa-fw fa-3x float-right text-black-50"></i>';
echo nl2br(tep_output_string_protected($order->info['comments_new'])) . tep_draw_hidden_field('comments_new', $order->info['comments_new']);
?>
</li>
</ul>
</div>
<?php
}
if (is_array($payment_modules->modules)) {
if ($confirmation = $payment_modules->confirmation()) {
?>
<hr>
<h5 class="mb-1"><?php echo HEADING_PAYMENT_INFORMATION; ?></h5>
<div class="row">
<?php
With this: if (tep_not_null($order->info['comments_new'], the comments_new box does not appear.
With this: if (tep_not_null($order->info['comments'], the comments_new box appears but without the texts input from the checkout_payment page.
Is this a php syntax error or something else? Please advise.
Thank you.
Last edited by Rich-Os on Tue Apr 15, 2025 5:28 pm, edited 1 time in total.
- burt
- Core Team
- Posts: 4551
- Joined: Tue Oct 29, 2019 9:37 am
- Phoenix Version: v1.1.0.8
- : Buy Me A Beverage
- Has thanked: 252 times
- Been thanked: 412 times
Re: New order comments box not working
Suggest you take a very close look at the code you just posted - it should immediately leap out at you why the `comments_new` text does not show near fas fa-comments icon.
I am not here to build for you.
I am here to build with you. Let's help each other.
I am here to build with you. Let's help each other.
Re: New order comments box not working
You're right. The code posted is now corrected to comment_new. It is correctly defined in the actual file though. Thank you.
The problem is still there. Box is not showing unless I define : if (tep_not_null($order->info['comments'])) {
Texts are not showing up.
Is there a check or validation for session on the confirmation page that I need to look at?
Below is my checkout_confirmation.php
<?php
/*
$Id$
osCommerce, Open Source E-Commerce Solutions
http://www.oscommerce.com
Copyright (c) 2018 osCommerce
Released under the GNU General Public License
*/
require('includes/application_top.php');
$OSCOM_Hooks->register_pipeline('progress');
// if the customer is not logged on, redirect them to the login page
if (!tep_session_is_registered('customer_id')) {
$navigation->set_snapshot(array('mode' => 'SSL', 'page' => 'checkout_payment.php'));
tep_redirect(tep_href_link('login.php', '', 'SSL'));
}
// if there is nothing in the customers cart, redirect them to the shopping cart page
if ($cart->count_contents() < 1) {
tep_redirect(tep_href_link('shopping_cart.php'));
}
// avoid hack attempts during the checkout procedure by checking the internal cartID
if (isset($cart->cartID) && tep_session_is_registered('cartID')) {
if ($cart->cartID != $cartID) {
tep_redirect(tep_href_link('checkout_shipping.php', '', 'SSL'));
}
}
// if no shipping method has been selected, redirect the customer to the shipping method selection page
if (!tep_session_is_registered('shipping')) {
tep_redirect(tep_href_link('checkout_shipping.php', '', 'SSL'));
}
if (!tep_session_is_registered('payment')) tep_session_register('payment');
if (isset($_POST['payment'])) $payment = $_POST['payment'];
if (!tep_session_is_registered('comments')) tep_session_register('comments');
if (isset($_POST['comments']) && tep_not_null($_POST['comments'])) {
$comments = tep_db_prepare_input($_POST['comments']);
}
// added for comments_new
if (!tep_session_is_registered('comments_new')) tep_session_register('comments_new');
if (isset($_POST['comments_new']) && tep_not_null($_POST['comments_new'])) {
$comments_new = tep_db_prepare_input($_POST['comments_new']);
}
// load the selected payment module
require('includes/classes/payment.php');
$payment_modules = new payment($payment);
require('includes/classes/order.php');
$order = new order;
$payment_modules->update_status();
if ( ($payment_modules->selected_module != $payment) || ( is_array($payment_modules->modules) && (sizeof($payment_modules->modules) > 1) && !is_object($$payment) ) || (is_object($$payment) && ($$payment->enabled == false)) ) {
tep_redirect(tep_href_link('checkout_payment.php', 'error_message=' . urlencode(ERROR_NO_PAYMENT_MODULE_SELECTED), 'SSL'));
}
if (is_array($payment_modules->modules)) {
$payment_modules->pre_confirmation_check();
}
// load the selected shipping module
require('includes/classes/shipping.php');
$shipping_modules = new shipping($shipping);
require('includes/classes/order_total.php');
$order_total_modules = new order_total;
$order_total_modules->process();
// Stock Check
$any_out_of_stock = false;
if (STOCK_CHECK == 'true') {
for ($i=0, $n=sizeof($order->products); $i<$n; $i++) {
if (tep_check_stock($order->products[$i]['id'], $order->products[$i]['qty'])) {
$any_out_of_stock = true;
}
}
// Out of Stock
if ( (STOCK_ALLOW_CHECKOUT != 'true') && ($any_out_of_stock == true) ) {
tep_redirect(tep_href_link('shopping_cart.php'));
}
}
require('includes/languages/' . $language . '/checkout_confirmation.php');
$breadcrumb->add(NAVBAR_TITLE_1, tep_href_link('checkout_shipping.php', '', 'SSL'));
$breadcrumb->add(NAVBAR_TITLE_2);
require('includes/template_top.php');
?>
<h1 class="display-4"><?php echo HEADING_TITLE; ?></h1>
<?php
if ($messageStack->size('checkout_confirmation') > 0) {
echo $messageStack->output('checkout_confirmation');
}
if (isset($$payment->form_action_url)) {
$form_action_url = $$payment->form_action_url;
} else {
$form_action_url = tep_href_link('checkout_process.php', '', 'SSL');
}
echo tep_draw_form('checkout_confirmation', $form_action_url, 'post');
?>
<div class="contentContainer">
<div class="row">
<div class="col-sm-7">
<h5 class="mb-1"><?php echo LIST_PRODUCTS; ?><small><a class="font-weight-lighter ml-2" href="<?php echo tep_href_link('shopping_cart.php', '', 'SSL'); ?>"><?php echo TEXT_EDIT; ?></a></small>
</h5>
<div class="border">
<ul class="list-group list-group-flush">
<?php
for ($i=0, $n=sizeof($order->products); $i<$n; $i++) {
echo '<li class="list-group-item">';
echo '<span class="float-right">' . $currencies->display_price($order->products[$i]['final_price'], $order->products[$i]['tax'], $order->products[$i]['qty']) . '</span>';
echo '<h5 class="mb-1">' . $order->products[$i]['name'] . '<small> x ' . $order->products[$i]['qty'] . '</small></h5>';
if ( (isset($order->products[$i]['attributes'])) && (sizeof($order->products[$i]['attributes']) > 0) ) {
echo '<p class="w-100 mb-1">';
for ($j=0, $n2=sizeof($order->products[$i]['attributes']); $j<$n2; $j++) {
echo '- ' . $order->products[$i]['attributes'][$j]['option'] . ': ' . $order->products[$i]['attributes'][$j]['value'] . '<br>';
}
echo '</p>';
}
echo '</li>';
}
?>
</ul>
<table class="table mb-0">
<?php
if (MODULE_ORDER_TOTAL_INSTALLED) {
echo $order_total_modules->output();
}
?>
</table>
</div>
</div>
<div class="col-sm-5">
<h5 class="mb-1"><?php echo ORDER_DETAILS; ?></h5>
<div class="border">
<ul class="list-group list-group-flush">
<?php
if ($sendto != false) {
echo '<li class="list-group-item">';
echo '<i class="fas fa-shipping-fast fa-fw fa-3x float-right text-black-50"></i>';
echo '<h5 class="mb-0">' . HEADING_DELIVERY_ADDRESS . '<small><a class="font-weight-lighter ml-2" href="' . tep_href_link('checkout_shipping_address.php', '', 'SSL') . '">' . TEXT_EDIT . '</a></small></h5>';
echo '<p class="w-100 mb-1">' . tep_address_format($order->delivery['format_id'], $order->delivery, 1, ' ', '<br />') . '</p>';
echo '</li>';
}
echo '<li class="list-group-item">';
echo '<i class="fas fa-file-invoice-dollar fa-fw fa-3x float-right text-black-50"></i>';
echo '<h5 class="mb-0">' . HEADING_BILLING_ADDRESS . '<small><a class="font-weight-lighter ml-2" href="' . tep_href_link('checkout_payment_address.php', '', 'SSL') . '">' . TEXT_EDIT . '</a></small></h5>';
echo '<p class="w-100 mb-1">' . tep_address_format($order->billing['format_id'], $order->billing, 1, ' ', '<br />') . '</p>';
echo '</li>';
if ($order->info['shipping_method']) {
echo '<li class="list-group-item">';
echo '<h5 class="mb-1">' . HEADING_SHIPPING_METHOD . '<small><a class="font-weight-lighter ml-2" href="' . tep_href_link('checkout_shipping.php', '', 'SSL') . '">' . TEXT_EDIT . '</a></small></h5>';
echo '<p class="w-100 mb-1">' . $order->info['shipping_method'] . '</p>';
echo '</li>';
}
echo '<li class="list-group-item">';
echo '<h5 class="mb-1">' . HEADING_PAYMENT_METHOD . '<small><a class="font-weight-lighter ml-2" href="' . tep_href_link('checkout_payment.php', '', 'SSL') . '">' . TEXT_EDIT . '</a></small></h5>';
echo '<p class="w-100 mb-1">' . $order->info['payment_method'] . '</p>';
echo '</li>';
?>
</ul>
</div>
</div>
</div>
<?php
if (tep_not_null($order->info['comments'])) {
?>
<h5 class="mb-1"><?php echo HEADING_ORDER_COMMENTS . '<small><a class="font-weight-lighter ml-2" href="' . tep_href_link('checkout_payment.php', '', 'SSL') . '">' .TEXT_EDIT . '</a></small>'; ?></h5>
<div class="border mb-3">
<ul class="list-group list-group-flush">
<li class="list-group-item">
<?php
echo '<i class="fas fa-comments fa-fw fa-3x float-right text-black-50"></i>';
echo nl2br(tep_output_string_protected($order->info['comments'])) . tep_draw_hidden_field('comments', $order->info['comments']);
?>
</li>
</ul>
</div>
<?php
}
if (tep_not_null($order->info['comments'])) {
?>
<h5 class="mb-1"><?php echo HEADING_ORDER_COMMENTS_NEW . '<small><a class="font-weight-lighter ml-2" href="' . tep_href_link('checkout_payment.php', '', 'SSL') . '">' .TEXT_EDIT . '</a></small>'; ?></h5>
<div class="border mb-3">
<ul class="list-group list-group-flush">
<li class="list-group-item">
<?php
echo '<i class="fas fa-comments fa-fw fa-3x float-right text-black-50"></i>';
echo nl2br(tep_output_string_protected($order->info['comments_new'])) . tep_draw_hidden_field('comments_new', $order->info['comments_new']);
?>
</li>
</ul>
</div>
<?php
}
if (is_array($payment_modules->modules)) {
if ($confirmation = $payment_modules->confirmation()) {
?>
<hr>
<h5 class="mb-1"><?php echo HEADING_PAYMENT_INFORMATION; ?></h5>
<div class="row">
<?php
if (tep_not_null($confirmation['title'])) {
echo '<div class="col">';
echo '<div class="bg-light border p-3">';
echo $confirmation['title'];
echo '</div>';
echo '</div>';
}
if (isset($confirmation['fields'])) {
echo '<div class="col">';
echo '<div class="alert alert-info" role="alert">';
$fields = '';
for ($i=0, $n=sizeof($confirmation['fields']); $i<$n; $i++) {
$fields .= $confirmation['fields'][$i]['title'] . ' ' . $confirmation['fields'][$i]['field'] . '<br>';
}
if (strlen($fields) > 4) echo substr($fields,0,-4);
echo '</div>';
echo '</div>';
}
?>
</div>
<div class="w-100"></div>
<?php
}
}
echo $OSCOM_Hooks->call('siteWide', 'injectFormDisplay');
?>
<div class="buttonSet mt-3">
<div class="text-right">
<?php
if (is_array($payment_modules->modules)) {
echo $payment_modules->process_button();
}
echo tep_draw_button(IMAGE_BUTTON_FINALISE_ORDER, 'fas fa-check-circle', null, 'primary', null, 'btn-success btn-block btn-lg');
?>
</div>
</div>
<div class="progressBarHook">
<?php
$parameters = [
'style' => 'progress-bar progress-bar-striped progress-bar-animated bg-info',
'markers' => ['position' => 3, 'min' => 0, 'max' => 100, 'now' => 100],
];
echo $OSCOM_Hooks->call('progress', 'progressBar', $parameters);
?>
</div>
</div>
</form>
<?php
require('includes/template_bottom.php');
require('includes/application_bottom.php');
?>
-
Omar_one
- Senior Contributor
- Posts: 677
- Joined: Fri Oct 25, 2019 5:06 pm
- Phoenix Version: v1.0.8.16
- Has thanked: 100 times
- Been thanked: 56 times
Re: New order comments box not working
should be if (tep_not_null($order->info['comments_new'])) {
Code: Select all
if (tep_not_null($order->info['comments_new'])) {
?>
<h5 class="mb-1"><?php echo HEADING_ORDER_COMMENTS_NEW . '<small><a class="font-weight-lighter ml-2" href="' . tep_href_link('checkout_payment.php', '', 'SSL') . '">' .TEXT_EDIT . '</a></small>'; ?></h5>Code: Select all
if (tep_not_null($order->info['comments'])) {
?>
<h5 class="mb-1"><?php echo HEADING_ORDER_COMMENTS_NEW . '<small><a class="font-weight-lighter ml-2" href="' . tep_href_link('checkout_payment.php', '', 'SSL') . '">' .TEXT_EDIT . '</a></small>'; ?></h5>Re: New order comments box not working
@Omar_one , thank you for your reply.Omar_one wrote: ↑Tue Apr 15, 2025 7:19 pmshould be if (tep_not_null($order->info['comments_new'])) {
notCode: Select all
if (tep_not_null($order->info['comments_new'])) { ?> <h5 class="mb-1"><?php echo HEADING_ORDER_COMMENTS_NEW . '<small><a class="font-weight-lighter ml-2" href="' . tep_href_link('checkout_payment.php', '', 'SSL') . '">' .TEXT_EDIT . '</a></small>'; ?></h5>Code: Select all
if (tep_not_null($order->info['comments'])) { ?> <h5 class="mb-1"><?php echo HEADING_ORDER_COMMENTS_NEW . '<small><a class="font-weight-lighter ml-2" href="' . tep_href_link('checkout_payment.php', '', 'SSL') . '">' .TEXT_EDIT . '</a></small>'; ?></h5>
I think you might have misunderstood what I'm trying to do.
There are two comments boxes.
The existing one is defined as 'comments'. This works well.
The new one is defined as 'comments_new'. This doesn't work (in checkout_confirmation.php).
But if I define the new one 'comments_new' as 'comments', then the box shows up but the texts doesn't and the texts are also not saved in the comments_new database table column.
Why is checkout_confirmation.php having issue with the 'comments_new' but checkout_shipping.php and checkout_payment.php are not ?
Thank you.
Last edited by Rich-Os on Wed Apr 16, 2025 11:26 am, edited 1 time in total.
Re: New order comments box not working
@burt
I think this line of code below is causing the problem for the comments_new box in checkout_confirmation.php:
If I used this code below, then the box and the texts show up but the texts are not saved in the database:echo nl2br(tep_output_string_protected($order->info['comments_new'])) . tep_draw_hidden_field('comments_new', $order->info['comments_new']);
What can I do?if (tep_not_null($order->info['comments'])) {
echo tep_draw_textarea_field('comments_new', 'soft', 60, 5, $comments_new, 'id="inputCommentsNew" placeholder="' . ENTRY_COMMENTS_NEW_PLACEHOLDER . '"');
Please advise.
Thank you.
- burt
- Core Team
- Posts: 4551
- Joined: Tue Oct 29, 2019 9:37 am
- Phoenix Version: v1.1.0.8
- : Buy Me A Beverage
- Has thanked: 252 times
- Been thanked: 412 times
Re: New order comments box not working
app.php/developers
Here are 3 developers to get a quote from. Getting a quote costs you nothing other than the time to write an email.
v1050 is very old, so maybe don't expect to too much in the way of help.
Here are 3 developers to get a quote from. Getting a quote costs you nothing other than the time to write an email.
v1050 is very old, so maybe don't expect to too much in the way of help.
I am not here to build for you.
I am here to build with you. Let's help each other.
I am here to build with you. Let's help each other.