Originally Posted by
lat9
That's because the checkout process shouldn't be entered if the checkout can't be completed. You could add the code fragment as an extra "header", e.g. /includes/modules/pages/checkout_one/header_php_min_order.php, and redirect back to the shopping-cart page with a message.
I wasn't able to accomplish your suggestion (my knowledge of PHP is quite... how should I put it "primitive" ) however I was able (sort of) to do what I needed without any errors (sort of) by moving the code around the tpl_modules_opc_submit_block.php page and looking at "hiding" the buttons instead preventing them from displaying, which surprisingly worked.
Code:
<?php
// -----
// Part of the One-Page Checkout plugin, provided under GPL 2.0 license by lat9 ([email protected]).
// Copyright (C) 2013-2017, Vinos de Frutas Tropicales. All rights reserved.
//
// Check to see that at least one shipping-method and one payment-method is enabled; if not, don't render the submit-button.
//
if ($shipping_module_available && $payment_module_available) {
// -----
// Set up two form-submittal buttons, one for payment methods that require confirmation and one for those that don't.
// This page's header_php.php has created an array of payment modules that require confirmation, which is pulled into the
// page's jscript_main.php.
//
?>
<!-- bof disable checkout button from displaying 1 of 2 -->
<?php
if (!IS_ADMIN_FLAG) {
global $order;
if (($order->info['total'] < 100) && is_object ($freeoptions)) {
echo '<div style="border: 3px solid #777777; padding: 10px 0;"><p style="text-align: center;"><strong>Your order does not qualify for Free Shipping at this time.</strong></p>
<p style="text-align: center;"><strong>Please go back to the - <a href="index.php?main_page=shopping_cart">SHOPPING BAG</a> - to add more products or increase the quantity of products in your bag to meet the minimum order amount required to qualify
for free shipping,</strong><br /><strong>or select a different shipping option.</strong></p>';
echo'<span id="opc-order-confirm"></span>';
} else {
} }
?>
<!-- eof disable checkout button from displaying 1 of 2 -->
<!--bof submit block -->
<div id="checkoutOneSubmit" class="buttonRow">
<span id="opc-order-confirm"><?php echo zen_image_button(BUTTON_IMAGE_CHECKOUT_ONE_CONFIRM, BUTTON_CHECKOUT_ONE_CONFIRM_ALT, 'name="btn_submit" id="btn_submit"'); ?></span>
<span id="opc-order-review"><?php echo zen_image_button(BUTTON_IMAGE_CHECKOUT_ONE_REVIEW, BUTTON_CHECKOUT_ONE_REVIEW_ALT, 'name="btn_submit" id="btn_submit"'); ?></span>
<?php echo zen_draw_hidden_field('order_confirmed', '1', 'id="confirm-the-order"') . zen_draw_hidden_field ('current_order_total', '0', 'id="current-order-total"'); ?>
</div>
<div class="clearBoth"></div>
<!--eof submit block -->
<?php
}
If an order that qualified for free shipping receives any discounts that lowers the total, the message is displayed on top of the buttons, preventing the customer from checking out. HOWEVER, if the customer decides to change the shipping option, the page doesn't refresh keeping the buttons hidden, not good.
Is there any way to make the page "refresh" if customer selects another shipping option?
Bookmarks