One-Page Checkout … with Guest … for Zen Cart v1.5.5b (and later)

Version 2.3.2 by lat9

Copyright © 2013-2020 Vinos de Frutas Tropicales. All rights reserved.

Released under the General Public License (see the file named license.txt in the plugin's distribution for full details). This script is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

The installation instructions for OPC v2.1.0 and later have changed significantly, as the core file changes required are now in-core, starting with Zen Cart 1.5.6b. If you are updating OPC from a previous version or are performing an initial installation for a Zen Cart version prior to 1.5.6b, refer to these additional instructions before that update or installation! Note also that initial installations on Zen Cart versions prior to 1.5.5b are no longer supported.

For versions of Zen Cart 1.5.6c and earlier, there are edits required for the shipping_estimator if your store enables OPC's guest-checkout. Refer to this GitHub issue for version-specific changes required.


  1. The checkout-confirmation loading .gif file was created using the tool at
  2. Browser detection class courtesy of
  3. Simple CSS overlay courtesy of
  4. Guest checkout, especially the orders_status page's processing, based on the COWOA (by @DivaVocals, @countrycharm and others) and COWAA (by @davewest) plugins.

Additional information (especially for features introduced in OPC v2.0.0) can be found in the plugin's Additional Documentation page.

Current Support Thread at Zen Cart Forums:

This section identifies how the One-Page Checkout, a.k.a. OPC, presents itself to your customers and your admin users.

Note: If your store provides downloadable products, be sure to check the Installation and Troubleshooting tab's Troubleshooting tab!

This plugin streamlines the flow that your customers see during your store's checkout process, combining the handling required for the checkout_shipping, checkout_payment and checkout_confirmation into a single-page display.

Starting with v2.0.0, your customers can also Checkout as Guest or create Registered Accounts! The Checkout as Guest feature provides customers with a more streamlined checkout experience (no account-creation required), while Registered Accounts enable your customers to create their account with minimal information (no address-book record required), making it easier for your customers to sign up for "newsletter-only" accounts and other account-holder features that your store might have.

The plugin's design utilizes standard Zen Cart HTML/CSS layout when rendering its new pages, so the look-and-feel of your store gets "inherited". Some templates make drastic modifications to that layout — removing those standard HTML/CSS selectors — which causes this plugin's newly-added pages to display improperly. The following templates are known to be incompatible with the One-Page Checkout plugin:

  1. Tableau (numinix)
  2. YourStore (themeforest)

v2.0.0 of One-Page Checkout has been validated with the ZCA Bootstrap Template, v1.0.4. Since that template uses a table-based layout for the order-totals' formatting, you'll need to make a template-override change to includes/templates/template_default/templates/tpl_modules_opc_shopping_cart.php, wrapping the order-totals' output with table tags:

    $row_class = ($last_row_class == 'rowEven') ? 'rowOdd' : 'rowEven';
//-bof-opc/bootstrap, added <table></table> since the order totals are displayed as table-rows.
        <tr class="<?php echo $row_class; ?>" id="cartOrderTotals">
            <td colspan="<?php echo (count($order->info['tax_groups']) > 1) ? 4 : 3; ?>" id="orderTotalDivs"><table width="100%"><?php $order_total_modules->process (); $order_total_modules->output(); ?></table></td>

The plugin checks (on confirmation) that the order's information hasn't changed by inspecting the customer's session, ensuring that what the customer saw on the checkout page is the same on confirmation page. There are order-total modules that make changes to those session-based settings, resulting in an order-confirmation loop and are, as such, incompatible with One-Page Checkout:

  1. ot_prowebsoptions

There are other order-total modules that require some tweaks to enable their interoperation with One-Page Checkout:

  1. Reward Points Full Suite v25.e and earlier, see this posting on the One-Page Checkout support thread for details.

The plugin's design also utilizes jQuery as its AJAX interface to the various updates required. There are some Zen Cart plugins that use the MooTools interface that will need a little extra "care and feeding" for compatibility with One-Page Checkout. OPC's v1.0.8 release provides the changes that enable interoperation with MooTools, but some plugin-specific changes might be needed in addition — specifically:

  1. Order Delivery Date. You'll need to copy that plugin's jscript*.* files to the /includes/modules/pages/checkout_one directory and modify the file jscript_a-mootools.js, adding the highlighted line to the top of that module:
    //MooTools, , My Object Oriented (JavaScript) Tools. Copyright (c) 2006-2009 Valerio Proietti, , MIT Style License.

One-Page Checkout's installation loads all the plugin's files into the sub-directories associated with the template_default template's use; that way, the processing is available for all templates you might use in your store. If you make changes to those default files, you'll use the Zen Cart "override" system to make your updates. For example, if you're adding a top-of-page message, you'll copy the file /includes/languages/english/checkout_one.php to the /includes/languages/english/YOUR_TEMPLATE sub-directory and make your changes there.

The plugin has been validated on Zen Cart 1.5.5a through Zen Cart 1.5.6c, using the following shipping, order-total and payment methods:

Shipping Methods

  1. Per Item
  2. Flat Rate
  3. Store Pickup
  4. Table Rate (and various clones)
  5. United States Postal Service (usps)
  6. United Parcel Service (ups)
  7. FedEx
  8. Product Delivery by Postcode (PDP)
  9. ZipShip (Requires v2.0.0 or later)
  10. ozPost

Order Totals

  1. Sub-total (ot_subtotal)
  2. Tax (ot_tax)
  3. Coupon (ot_coupon)
  4. Gift Certificates (ot_gv)
  5. Shipping (ot_shipping)
  6. Total (ot_total)
  7. Reward Points
  8. COD Fee (ot_cod_fee)
  9. Low-order Fee (ot_loworder_fee)

Payment Methods:

  1. (AIM) (authorizenet_aim)
  2. (SIM) (authorizenet)
  3. Braintree
  4. Ceon Manual Card
  5. Check / Moneyorder (moneyorder)
  6. Direct Bank Deposit
  7. eWay Rapid 3.0 (eway_rapid)
  8. First Data Hosted Checkout Payment Pages
  9. Layaway Plan
  10. NoChex
  11. Payeezy (payeezyjszc), v0.99 or later
  12. PayPal Express Checkout (paypalwpp). Note: Orders placed via the PayPal Express Checkout button, normally on a site's 'shopping-cart' or 'login' pages, will continue with the "normal" 3-page-checkout process.
  13. Purchase Order (purchaseorders)
  14. Sage Pay Form
  15. Square (square), v0.96 or later
  16. Stripe-Pay
  17. Gateway Processing Services (gps). Note: The payment method must be present in the OPC setting Payment Methods Requiring Confirmation for proper operation.
  18. Ship2Pay (starting with OPC v2.2.2)
  19. Ceon Sage Pay Direct (starting with OPC v2.2.2)

Note: The following conventions apply to OPC, v1.3.0 or later.

The primary interoperability issue between OPC (or any checkout-page "consolidator") and a payment-method centers on the collective javascript/jQuery implementation. Newer payment-processors' APIs have become more complicated, resulting in additional jQuery/AJAX constructs within the associated Zen Cart payment-method.

That issue arises when the checkout-page and the payment-method bind to the same DOM event, whether it's the submission of the form or a click of a submit-button. The net result is that some jQuery fragment is not run which, in turn, causes the page/payment-method integration to fail (i.e. orders cannot be placed).

The following guidelines are assumed by One-Page Checkout in support of interoperation with the varied payment-methods, identifying which selectors each class of module binds to. This will serve to reduce those jQuery event conflicts and lessen the integration headaches for payment-method developers.

checkout_payment-loaded jscript modules

When a payment module requires a separate javascript/jQuery "helper" on the checkout_payment page, that separately-loaded script must be sensitive to the Zen Cart implementation of the PayPal Express Checkout "shortcut button". Specifically, when the customer is checking-out via that "shortcut", the only payment-method that is formatted for the customer's use is that for PayPal Express Checkout. The Zen Cart payment-class method in_special_checkout can be used by a payment module's separately-loaded script to determine a case where that script should not be loaded.

There are two known cases of this interoperability issue:

  1. Square, v0.90 and earlier, /includes/modules/pages/checkout_payment/jscript_square.php. As reported in the payment-method's Zen Cart support thread, the code fragment highlighted below must be incorporated to correct the interoperability issue:
    if ($payment_modules->in_special_checkout() || !defined(MODULE_PAYMENT_SQUARE_STATUS) || MODULE_PAYMENT_SQUARE_STATUS != 'True' || (!defined('MODULE_PAYMENT_SQUARE_APPLICATION_ID') || MODULE_PAYMENT_SQUARE_ACCESS_TOKEN == '')) {
        return false;
  2. Payeezy JS, v0.96 and earlier, /includes/modules/pages/checkout_payment/jscript_payeezy.php. As reported in the payment-method's GitHub repository, the code fragment highlighted below must be incorporated to correct the interoperability issue:
        return false;

If your site required a scripting patch, as described above, be sure to copy the updated jscript file to /includes/modules/pages/checkout_one!

Common Page Elements

There are four (4) elements on the "normal" checkout-payment page that have bearing on the page's form submissions:

  1. The form itself, named checkout_payment.
  2. The form's submit button.
  3. The form's optional credit-class modules' (e.g. coupons, vouchers or reward-points) submit buttons.
  4. A global javascript/jQuery variable named submitter. This variable is set by the page to identify whether (0) or not (1) the form's submission requires a payment-method's intervention. This value is set to 1 (no payment-method required) by the page's processing when one or more of the following conditions is met:
    • The order's total value is 0.
    • A credit-class order-total module's submit-button was clicked.
    • A gift-certificate has been applied to the order and its associated value "covers" the cost of the order.

One-Page Checkout Operations

OPC renders its data-gathering page (checkout_one) with no button that actually submits the form. All form submittals are handled via its jQuery processing (/includes/modules/pages/checkout_one/jscript_main.php), allowing OPC to properly sequence the checkout processing.

Instead, the page's jQuery processing binds to a click of the form's pseudo-submit buttons (both order-confirmation and credit-class modules' "Apply" buttons). Upon detecting such a click, the jQuery sets the value of the submitter variable in a manner similar to the checkout_payment page. Additionally, that processing disables the Enter button from acting as a default form-submittal. If that jQuery processing detects that no non-payment-related issues are present, that processing issues a programmatic submit of the page's form.

Payment-Method Operations

If a payment method requires some special action on the submittal of the checkout_payment form, that payment method should bind only to the form's submit event, performing its actions only when the value of submitter is 0 and the payment-method is currently selected.

Once you've installed the plugin, an additional item is available in your admin's Configuration menu: One-Page Checkout Settings. The following settings are available:

Name Description Version Added
Version/Release Date This display-only field shows the plugin's current version and release date. 1.0.0
Enable One-Page Checkout? Choose true to enable for all customers, false to disable (default) or conditional to enable the processing only for customers identified by Enable: Customer List. 1.0.0
Enable: Customer List When you conditionally enable the plugin, use this setting to limit the customers for which the plugin is enabled. Leave the setting blank (the default) to disable the plugin for all customers or identify a comma-separated list of customer_id values for whom the plugin is to be enabled.

Note: Starting with OPC v2.1.0, intervening blanks are allowed.
Update Shipping AJAX Time-out Use this setting to adjust the timeout to use when the plugin requests an update to the shipping quotes on the "checkout_one" page. The default setting of 5000 (5 seconds) should work for most stores. If your store has enabled multiple external shipping modules (e.g. USPS, UPS and FedEx), you might need to increase this value. 1.0.3
Payment-Block Action on Shipping Change Identify the action to be taken for the order's 'payment-block' when the order's shipping-method changes. Some payment-methods (e.g. square) require that the block not be updated while others are dependent on the shipping-method selected (e.g. a Cash payment is accepted only if the customer has chosen 'Store Pickup'). Choose:
  • no-update if at least one of your store's payment methods require that no update be performed, e.g. square.
  • update if none of your store's payment methods require no-update.
  • refresh if your store has a combination of payment-method requirements, some which require no-update and some that don't. Note that choosing this method will result in any customer-entered credit-card information being reset if the order's shipping-method is changed.
If your store has the square module installed on an OPC installation or upgrade, this setting will default to no-update; otherwise, the default value will be update.
Order Total, jQuery Selector Identify the CSS/jQuery selector used to determine an order's current total-value (ot_total). The value defaults to #ottotal > div:first-child, the selector value for the built-in responsive_classic and template_default templates. 2.3.0
Enable Shipping=Billing? When enabled, the "checkout_one" page presents the customer with a checkbox-input to indicate that their shipping and billing addresses are the same. If you don't want that control to be shown, i.e. the billing and shipping addresses are both always displayed, set the value to false. 1.3.0
Payment Methods Requiring Confirmation There are some payment methods that require the confirmation page to be displayed for their proper operation. You can add to that comma-separated list any of the payment methods used on your store for which you'd like the customer to confirm.

Note: Starting with OPC v2.1.0, intervening blanks are allowed.
Order Status: Slamming Control Identify the number of back-to-back errors that your store allows when a customer is checking an order's status via the order_status page (default: 3). When the customer has reached that threshold, they will be redirected to the time_out page. 2.0.0
Load Minified Script Files? Should the plugin load the minified version of its jQuery scripts, reducing the page-load time for the checkout_one page? Default: true. 1.5.0
Enable Guest Checkout? When enabled (i.e. set to true), customers can checkout without creating an account using the OPC's guest checkout. Note that the overall One-Page Checkout must also be enabled! 2.0.0
Guest Checkout: Require Email Confirmation? When a guest checks out, are they required to confirm their email address? Default: true. 2.0.0
Guest Checkout: Pages Allowed Post-Checkout Identify (using a comma-separated list, intervening blanks are OK) the pages that are allowed once a guest has completed their checkout. When the guest navigates from the checkout_success page to any page not in this list, their guest-customer session is reset.

For example, if your store provides a pop-up print invoice, you would include the name of that page in this list. Default: download.

Note: The default for this setting was blank (i.e. '') for OPC versions prior to v2.0.4.
Guest Checkout: Disallowed Pages Identify (using a comma-separated list, intervening blanks are OK) the pages that are disallowed during guest-checkout. These pages normally require a logged-in customer prior to display, e.g. account. Do not include the login, create_account or logoff pages in this list!

Default: account, account_edit, account_history, account_history_info, account_newsletters, account_notifications, account_password, address_book, address_book_process, create_account_success, gv_redeem, gv_send, password_forgotten, product_reviews_write, unsubscribe.
Guest Checkout: Disallowed Credit Class Order-Totals Identify (using a comma-separated list, intervening blanks are OK) any credit-class order-totals that are disallowed during guest-checkout. These order-totals normally require a customer-account for their processing, e.g. ot_gv, the default value.

Note: Starting with OPC v2.1.0, intervening blanks are allowed.
Guest Checkout: Disallowed Payment Methods Identify (using a comma-separated list, intervening blanks are OK) any payment methods that are disallowed during guest-checkout. These payment methods normally have no validation of purchase — e.g. moneyorder and cod — and can, if left enabled, result in unwanted spam purchases. Default: moneyorder, cod.

Note: Starting with OPC v2.1.0, intervening blanks are allowed.
Enable Account Registration? Do you want your store's create_account processing to create a registered rather than a full account? Default: false. 2.0.0
Login-Page Layout When you enable the plugin's Guest Checkout and/or Account Registration, an alternate formatting of the storefront login page is displayed. Use this setting to control the 3-column layout of that modified page. The value is an encoded string, identifying which block(s) should be displayed in which column. Columns are delimited by a semi-colon (;) and the top-to-bottom column layout is in the order specified by the block-elements' left-to-right order.

The block elements are:
  • L ... (required) The email/password login block.
  • P ... (optional) The PayPal Express Checkout shortcut-button block.
  • G ... (required) The guest-checkout block.
  • C ... (required) The create-account block.
  • B ... (optional) The "Account Benefits" block.
Default: L;P,G,C;B. See this additional-documentation page for details.
Enable One-Page Checkout Debug? When enabled, debug files named one_page_checkout-xx-YYYY-mm-dd.log are created in your /logs sub-directory, where xx is the customer_id for the checkout and YYYY-mm-dd is the date associated with the information. Use the true or full settings in combination with the Debug: Customer List setting to limit the customers for which the debug-action is taken. Setting the value to full will also set the PHP error-level for the checkout_one page's processing so that all PHP errors are logged. 1.0.0
Debug: Customer List When you enable the plugin's debug, use this setting to limit the customers for which the debug-logs are generated. Leave the setting blank (the default) to debug all customers or identify a comma-separated list of customer_id values to limit the debug to just those customers. 1.0.0

There are also a couple of constants present in the plugin's language file (/includes/languages/english/checkout_one.php) that you can use to control the checkout_one page's display. Each of these values are an empty string (i.e. no display produced) as-shipped by the plugin.

  1. TEXT_CHECKOUT_ONE_TOP_INSTRUCTIONS. This constant, echoed within a p tag, defines any upper-page instructions you might want to give to your customers.
  2. TEXT_CHECKOUT_ONE_INSTRUCTIONS. This constant, echoed within a p tag within a fieldset tag, defines any lower-page instructions just above the form's submit button.
  3. TEXT_CHECKOUT_ONE_INSTRUCTION_LABEL. Defines the value to be used in the fieldset's legend tag; if the value is set as '', no legend is generated.

Starting with v1.0.4, the checkout_one_confirmation page's language file also has an instructional constant that you can use to customize your customers' experience: CHECKOUT_ONE_CONFIRMATION_INSTRUCTIONS. These instructions are displayed just before the page's progress-spinner and should be supplied if your store requires additional time to process.

Note: If you're going to change those constants, be sure to make a template-override copy of the plugin's as-shipped language file so the file isn't mistakenly overwritten on an update to the plugin!

When you've enabled the One-Page Checkout, the customer will see a single-page similar to the images shown in the plugin's additional documentation; the actual layout will depend on the template that is currently active for your store and the OPC options that you have enabled. The customer uses the form to apply any coupon (or gift-certificate) codes, choose their shipping and payment methods and then clicks that "Confirm Order" button … which takes them to a transitional confirmation page and subsequently to the "checkout_success" page. If they've chosen a payment method that accepts credit-cards onsite, then an additional confirmation page is displayed from which the customer re-confirms their order.


  1. Starting with v1.0.4, customers that access your site using a version of Internet Explorer less than 9.0 will continue to see the "traditional" multi-page version of the checkout process.
  2. Starting with v1.3.0, this page uses jQuery to handle the submittal of the checkout-related form. If the customer has disabled javascript in their browser or if there's a jQuery-related error on the page, the customer is unable to checkout via OPC. In this case, the plugin displays a message to the customer with a link to the multi-page checkout handling so that they can still checkout.
  3. This page's display depends heavily on the mode that a customer uses to perform their checkout. See this additional-documentation page for details.

This section identifies the procedure you'll use to install/update or remove the plugin for your Zen Cart and also gives some hints and tips regarding troubleshooting an installation.


  1. These instructions have changed significantly for v2.1.0 of the One-Page Checkout plugin! Please make sure that you've read the full instructions before beginning your installation or upgrade.

There are template-override and, depending on your store's base Zen Cart version, core-file changes required by this plugin; you should always backup your cart's database and files prior to making any changes. Unzip the plugin's package file and then:

  1. Rename the YOUR_TEMPLATE sub-directories (5 of them) to match your store's template name:
    1. /includes/languages/english/YOUR_TEMPLATE
    2. /includes/languages/english/html_includes/YOUR_TEMPLATE
    3. /includes/languages/english/modules/order_total/YOUR_TEMPLATE
    4. /includes/modules/sideboxes/YOUR_TEMPLATE
    5. /includes/templates/YOUR_TEMPLATE
  2. Rename the YOUR_ADMIN sub-directory to match your store's admin-sub-directory name.
  3. Merge the template-override modifications required by this plugin with your store's existing copy of each file, using the plugin's version of the file if not currently present in your store's file-system.
    1. /includes/languages/english/modules/order_total/YOUR_TEMPLATE/ot_coupon.php
    2. /includes/languages/english/modules/order_total/YOUR_TEMPLATE/ot_gv.php
    3. /includes/languages/english/YOUR_TEMPLATE/checkout_confirmation.php
    4. /includes/modules/sideboxes/YOUR_TEMPLATE/information.php (Added in v2.1.3)
  4. If your store is running a Zen Cart version less than 1.5.6 and you want to quickly identify those orders placed by guests, there are additional edits required for /YOUR_ADMIN/orders.php. See these instructions from the OPC's additional-documentation pages.
  5. Sign into your Zen Cart's admin panel. Due the the number of files that require uploading, I suggest that you place the site into Maintenance Mode by setting Configuration->Website Maintenance->Down for Maintenance: ON/OFF to true.
  6. Important! Review the instructions provided in the Initial Installation section of Installing or Upgrading OPC v2.1.0 (and later) for your store's current Zen Cart version, making any additional changes indicated.
  7. Copy the plugin's new files — with the sub-directories renamed as identified in steps A and B and the file-merges performed as identified in steps C and D — to your store's directory structure. You'll use either your webhost's cPanel File Manager or an FTP program (like WinSCP or FileZilla) to perform this copy.
    1. /includes/auto_loaders/config.checkout_one.php
    2. /includes/auto_loaders/paypal_ipn.checkout_one.php
    3. /includes/classes/OnePageCheckout.php
    4. /includes/classes/OnePageCheckoutNoPayment
    5. /includes/classes/Vinos_Browser.php
    6. /includes/classes/ajax/zcAjaxOnePageCheckout.php
    7. /includes/classes/observers/class.checkout_one_observer.php
    8. /includes/classes/observers/CheckoutOneEmailObserver.php
    9. /includes/extra_datafiles/checkout_one_filenames.php
    10. /includes/functions/extra_functions/one_page_checkout_functions.php
    11. /includes/langauges/english/address_book_register.php
    12. /includes/languages/english/checkout_one.php
    13. /includes/languages/english/checkout_one_confirmation.php
    14. /includes/languages/english/checkout_process_guest.php
    15. /includes/languages/english/checkout_success_guest.php
    16. /includes/languages/english/create_account_register.php
    17. /includes/langauges/english/create_account_success_register.php
    18. /includes/languages/english/login_guest.php
    19. /includes/languages/english/order_status.php
    20. /includes/languages/english/extra_definitions/checkout_one_extra_definitions.php
    21. /includes/languages/english/html_includes/define_checkout_success_guest.php
    22. /includes/languages/english/html_includes/YOUR_TEMPLATE/define_checkout_success_guest.php
    23. /includes/languages/english/modules/order_total/YOUR_TEMPLATE/ot_coupon.php
    24. /includes/languages/english/modules/order_total/YOUR_TEMPLATE/ot_gv.php
    25. /includes/languages/english/YOUR_TEMPLATE/checkout_confirmation.php
    26. /includes/modules/pages/address_book/header_php_address_book_register.php
    27. /includes/modules/pages/address_book/main_template_vars.php
    28. /includes/modules/pages/checkout_one/header_php.php
    29. /includes/modules/pages/checkout_one/jquery.checkout_one.js
    30. /includes/modules/pages/checkout_one/jquery.checkout_one.min.js
    31. /includes/modules/pages/checkout_one/jquery.checkout_one_addr.js
    32. /includes/modules/pages/checkout_one/jquery.checkout_one_addr.min.js
    33. /includes/modules/pages/checkout_one/jscript_main.php
    34. /includes/modules/pages/checkout_one/on_load_main.js
    35. /includes/modules/pages/checkout_one_confirmation/header_php.php
    36. /includes/modules/pages/checkout_one_confirmation/jscript_main.php
    37. /includes/modules/pages/checkout_success/header_php_guest.php
    38. /includes/modules/pages/checkout_success/main_template_vars.php
    39. /includes/modules/pages/create_account/header_php_create_account_register.php
    40. /includes/modules/pages/create_account/jscript_form_check_register.php
    41. /includes/modules/pages/create_account/main_template_vars.php
    42. /includes/modules/pages/create_account_success/header_php_create_account_success_register.php
    43. /includes/modules/pages/create_account_success/main_template_vars.php
    44. /includes/modules/pages/login/header_php_login_guest.php
    45. /includes/modules/pages/login/main_template_vars.php
    46. /includes/modules/pages/order_status/header_php.php
    47. /includes/templates/template_default/css/checkout_one.css
    48. /includes/templates/template_default/css/checkout_one_confirmation.css
    49. /includes/templates/template_default/css/checkout_success.css
    50. /includes/templates/template_default/css/create_account.css
    51. /includes/templates/template_default/css/login.css
    52. /includes/templates/template_default/images/confirmation_one_loading.gif
    53. /includes/templates/template_default/templates/tpl_address_book_register.php
    54. /includes/templates/template_default/templates/tpl_checkout_one_confirmation_default.php
    55. /includes/templates/template_default/templates/tpl_checkout_one_default.php
    56. /includes/templates/template_default/templates/tpl_checkout_success_guest.php
    57. /includes/templates/template_default/templates/tpl_create_account_register.php
    58. /includes/templates/template_default/templates/tpl_create_account_success_register.php
    59. /includes/templates/template_default/templates/tpl_login_guest.php
    60. /includes/templates/template_default/templates/tpl_modules_checkout_one_shipping.php
    61. /includes/templates/template_default/templates/tpl_modules_opc_address_block.php
    62. /includes/templates/template_default/templates/tpl_modules_opc_billing_address.php
    63. /includes/templates/template_default/templates/tpl_modules_opc_comments.php
    64. /includes/templates/template_default/templates/tpl_modules_opc_conditions.php
    65. /includes/templates/template_default/templates/tpl_modules_opc_credit_selections.php
    66. /includes/templates/template_default/templates/tpl_modules_opc_customer_info.php
    67. /includes/templates/template_default/templates/tpl_modules_opc_instructions.php
    68. /includes/templates/template_default/templates/tpl_modules_opc_payment_choices.php
    69. /includes/templates/template_default/templates/tpl_modules_opc_shipping_address.php
    70. /includes/templates/template_default/templates/tpl_modules_opc_shipping_choices.php
    71. /includes/templates/template_default/templates/tpl_modules_opc_shopping_cart.php
    72. /includes/templates/template_default/templates/tpl_modules_opc_submit_block.php
    73. /includes/templates/template_default/templates/tpl_order_status_default.php
    74. /includes/templates/YOUR_TEMPLATE/css/checkout_one.css
    75. /includes/templates/YOUR_TEMPLATE/css/checkout_one_confirmation.css
    76. /includes/templates/YOUR_TEMPLATE/css/checkout_success.css
    77. /includes/templates/YOUR_TEMPLATE/css/create_account.css
    78. /includes/templates/YOUR_TEMPLATE/css/login.css
    79. /YOUR_ADMIN/includes/auto_loaders/config.checkout_one.php
    80. /YOUR_ADMIN/includes/classes/observers/CheckoutOneAdminObserver.php
    81. /YOUR_ADMIN/includes/init_includes/init_checkout_one.php
    82. /YOUR_ADMIN/includes/init_includes/init_checkout_one_install.php
    83. /YOUR_ADMIN/includes/init_includes/init_checkout_one_upgrade.php
    84. /YOUR_ADMIN/includes/languages/english/extra_definitions/checkout_one_name.php
  8. Click the "Admin Home" link in your Zen Cart's top admin menu. This action will cause the plugin's installation script to run.
  9. Now, check your store's current /includes/modules/pages/checkout_payment directory's contents. The "base" Zen Cart distribution includes two files in that directory: header_php.php and jscript_main.php. If your directory contains any other files, be sure to copy them to your store's /includes/modules/pages/checkout_one directory. Those additional files come from plugins and additional payment methods and will be required for those modifications to operate correctly in the one-page checkout environment.
  10. If you placed your store into Maintenance Mode, as suggested at step G, you can now safely take your site out of Maintenance Mode.
  11. Note that the plugin, upon initial installation, defaults its enabling settings to false; see the Overview / Configuration tab of this readme for additional information.
  12. One last item to "tidy up" ... registering the two new checkout pages into the ROBOTS_PAGES_TO_SKIP value. I don't think this is a high-priority item since the pages' names don't appear on any menus and include it only for completeness! If you want to make sure that robots aren't indexing the checkout_one and checkout_one_confirmation pages, you'll need to edit your template's version of /includes/languages/english/meta_tags.php and add those two page-names to the end of that constant's comma-separated-list.


  1. These instructions have changed significantly for v2.1.0 of the One-Page Checkout plugin! Please make sure that you've read the full instructions before beginning your installation or upgrade.

There are template-override and, depending on your store's current Zen Cart version, core-file changes required by this plugin; you should always backup your cart's database and files prior to making any changes. Unzip the plugin's package file and then:

  1. Sign into your Zen Cart's admin panel. Since there might be a number of files that require uploading, I suggest that you place the site into Maintenance Mode by setting Configuration->Website Maintenance->Down for Maintenance: ON/OFF to true.
  2. Important! Review the instructions provided in the Upgrading section of Installing or Upgrading OPC v2.1.0 (and later) for your store's current Zen Cart version, making any additional changes indicated.
  3. Make note of the version-number of your current One-Page Checkout installation; see your admin's Configuration->One-Page Checkout Settings->Version/Release Date.
  4. Review the Change History tab of this readme, noting all of the affected files starting with the OPC release just following your current version. Copy those updated files from the OPC distribution to your store's file-system.
  5. In the file-list created for step D, note any changes to OPC's base template and language files and make sure to merge those changes with any template-override versions that you might have created!
  6. Click the "Admin Home" link in your Zen Cart's top admin menu. This action will cause the plugin's upgrade script to run.
  7. If you placed your store into Maintenance Mode, as suggested at step A, you can now safely take your site out of Maintenance Mode.

First, delete the files that were copied to your Zen Cart installation's file-system. Then use your admin's Tools->Run SQL Patches to run the file /docs/checkout_one/uninstall/checkout_one_uninstall.sql.

One-Page Checkout relies heavily on your store to load a single version of jQuery for its use during the checkout processing. If your store uses plugin payment-, shipping- or order-total-modules, you'll need to validate the OPC to make sure that your store is capable of supporting its processing. That's why the OPC's initial installation sets the plugin's configuration as Disabled, to give a store-owner the opportunity to make sure that his/her store's environment is compatible with the one-page checkout process.

OPC's jQuery handling makes use of your browser's "Console" to identify its progress throughout the checkout process. On most up-to-date browsers, you can view the browser's console by pressing the F12 key and then clicking on the "Console" tab that is shown (usually at the bottom of the viewed page).

Some required elements on this page are missing

If you receive a javascript alert reading Please contact the store owner; some required elements of this page are missing., then your template-override version of /includes/templates/YOUR_TEMPLATE/templates/tpl_checkout_one_default.php is missing one or more of the HTML id elements that OPC requires for its proper operation.

Follow the instructions above to view the browser's console-log; the missing elements are identified there. You'll need to compare your template-override version of the file with the version present in the /includes/templates/template_default/templates directory, adding those required elements back!

Check for jQuery Errors

It's important that there are no jQuery errors reported within the browser-console as those can lead to a variety of symptoms:

  1. The checkout_one page shows the message "Sorry, but our expedited checkout process cannot be used. Click here to use our alternate checkout process.", where the link presented is back to the multi-page-checkout process.
  2. The above message is not displayed, but the Review or Confirm buttons are inoperative upon click. Note that this symptom is usually associated with multiple jQuery versions being loaded by your store's template and/or plugins.

Template-specific "jscript_framework.php" is Required

After installation of OPC, you might receive an admin error-message: The One-Page Checkout plugin has been disabled.. That message identifies that the file "DIR_FS_INCLUDES/templates/YOUR_TEMPLATE/jscript/jscript_framework.php" is required for the plugin's proper operation (where DIR_FS_INCLUDES identifies your store's file-system's /includes sub-directory and YOUR_TEMPLATE identifies your store's active template name).

You'll need to create that file in your store's active template's jscript sub-directory, containing:

 * Include AJAX Framework for non-template_default templates **only**!
 * @package templateSystem
 * @copyright Copyright 2003-2017 Zen Cart Development Team
 * @license GNU Public License V2.0
 * @version $Id: Author: zcwilt  lat9 Modified in v1.5.6 $
require DIR_WS_TEMPLATES . 'template_default/jscript/jscript_framework.php';

This section identifies the files added or modified for this plugin as well as the plugin's change history.

The plugin provides the following new files in its distribution zip-file:

  1. /includes/auto_loaders/config.checkout_one.php
  2. /includes/auto_loaders/paypal_ipn.checkout_one.php (Added in v2.1.0)
  3. /includes/classes/OnePageCheckout.php (Added in v2.0.0)
  4. /includes/classes/OnePageCheckoutNoPayment.php (Added in v2.1.0)
  5. /includes/classes/Vinos_Browser.php (Added in v1.0.4)
  6. /includes/classes/ajax/zcAjaxOnePageCheckout.php
  7. /includes/classes/observers/class.checkout_one_observer.php
  8. /includes/classes/observers/CheckoutOneEmailObserver.php (Added in v2.3.2)
  9. /includes/extra_datafiles/checkout_one_filenames.php
  10. /includes/functions/extra_functions/one_page_checkout_functions.php (Added in v2.0.0)
  11. /includes/languages/english/address_book_register.php (Added in v2.0.0)
  12. /includes/languages/english/checkout_one.php
  13. /includes/languages/english/checkout_one_confirmation.php
  14. /includes/languages/english/checkout_process_guest.php (Added in v2.0.0)
  15. /includes/languages/english/checkout_success_guest.php (Added in v2.0.0)
  16. /includes/languages/english/create_account_register.php (Added in v2.0.0)
  17. /includes/languages/english/create_account_success_register.php (Added in v2.0.0)
  18. /includes/languages/english/login_guest.php (Added in v2.0.0)
  19. /includes/languages/english/order_status.php (Added in v2.0.0)
  20. /includes/languages/english/extra_definitions/checkout_one_extra_definitions.php (Added in v1.0.8)
  21. /includes/languages/english/html_includes/define_checkout_success_guest.php (Added in v2.0.0)
  22. /includes/languages/english/html_includes/YOUR_TEMPLATE/define_checkout_success_guest.php (Added in v2.0.0)
  23. /includes/languages/english/modules/order_total/YOUR_TEMPLATE/ot_coupon.php
  24. /includes/languages/english/modules/order_total/YOUR_TEMPLATE/ot_gv.php
  25. /includes/languages/english/YOUR_TEMPLATE/checkout_confirmation.php
  26. /includes/modules/pages/address_book/header_php_address_book_register.php (Added in v2.0.0)
  27. /includes/modules/pages/address_book/main_template_vars.php (Added in v2.0.0)
  28. /includes/modules/pages/checkout_one/header_php.php
  29. /includes/modules/pages/checkout_one/jquery.checkout_one.js (Added in v1.5.0)
  30. /includes/modules/pages/checkout_one/jquery.checkout_one.min.js (Added in v1.5.0)
  31. /includes/modules/pages/checkout_one/jquery.checkout_one_addr.js (Added in v2.0.0)
  32. /includes/modules/pages/checkout_one/jquery.checkout_one_addr.min.js (Added in v2.0.0)
  33. /includes/modules/pages/checkout_one/jscript_main.php
  34. /includes/modules/pages/checkout_one_confirmation/header_php.php
  35. /includes/modules/pages/checkout_one_confirmation/jscript_main.php
  36. /includes/modules/pages/checkout_success/header_php_guest.php (Added in v2.0.0)
  37. /includes/modules/pages/checkout_success/main_template_vars.php (Added in v2.0.0)
  38. /includes/modules/pages/create_account/header_php_create_account_register.php (Added in v2.0.0)
  39. /includes/modules/pages/create_account/jscript_form_check_register.php (Added in v2.0.0)
  40. /includes/modules/pages/create_account/main_template_vars.php (Added in v2.0.0)
  41. /includes/modules/pages/create_account_success/header_php_create_account_success_register.php (Added in v2.0.0)
  42. /includes/modules/pages/create_account_success/main_template_vars.php (Added in v2.0.0)
  43. /includes/modules/pages/login/header_php_login_guest.php (Added in v2.0.0)
  44. /includes/modules/pages/login/main_template_vars.php (Added in v2.0.0)
  45. /includes/modules/pages/order_status/header_php.php (Added in v2.0.0)
  46. /includes/modules/sideboxes/YOUR_TEMPLATE/information.php (Added in v2.1.3)
  47. /includes/templates/template_default/css/checkout_one.css
  48. /includes/templates/template_default/css/checkout_one_confirmation.css
  49. /includes/templates/template_default/css/checkout_success.css (Added in v2.0.0)
  50. /includes/templates/template_default/css/create_account.css (Added in v2.0.0)
  51. /includes/templates/template_default/css/login.css (Added in v2.0.0)
  52. /includes/templates/template_default/images/confirmation_one_loading.gif
  53. /includes/templates/template_default/templates/tpl_address_book_register.php (Added in v2.0.0)
  54. /includes/templates/template_default/templates/tpl_checkout_one_confirmation_default.php
  55. /includes/templates/template_default/templates/tpl_checkout_one_default.php
  56. /includes/templates/template_default/templates/tpl_checkout_success_guest.php (Added in v2.0.0)
  57. /includes/templates/template_default/templates/tpl_create_account_register.php (Added in v2.0.0)
  58. /includes/templates/template_default/templates/tpl_create_account_success_register.php (Added in v2.0.0)
  59. /includes/templates/template_default/templates/tpl_login_guest.php (Added in v2.0.0)
  60. /includes/templates/template_default/templates/tpl_modules_checkout_one_shipping.php (Added in v1.0.2)
  61. /includes/templates/template_default/templates/tpl_modules_opc_address_block.php (Added in v2.0.0)
  62. /includes/templates/template_default/templates/tpl_modules_opc_billing_address.php (Added in v1.5.0)
  63. /includes/templates/template_default/templates/tpl_modules_opc_comments.php (Added in v1.5.0)
  64. /includes/templates/template_default/templates/tpl_modules_opc_conditions.php (Added in v1.5.0)
  65. /includes/templates/template_default/templates/tpl_modules_opc_credit_selections.php (Added in v1.5.0)
  66. /includes/templates/template_default/templates/tpl_modules_opc_customer_info.php (Added in v2.0.0)
  67. /includes/templates/template_default/templates/tpl_modules_opc_instructions.php (Added in v1.5.0)
  68. /includes/templates/template_default/templates/tpl_modules_opc_payment_choices.php (Added in v1.5.0)
  69. /includes/templates/template_default/templates/tpl_modules_opc_shipping_address.php (Added in v1.5.0)
  70. /includes/templates/template_default/templates/tpl_modules_opc_shipping_choices.php (Added in v1.5.0)
  71. /includes/templates/template_default/templates/tpl_modules_opc_shopping_cart.php (Added in v1.5.0)
  72. /includes/templates/template_default/templates/tpl_modules_opc_submit_block.php (Added in v1.5.0)
  73. /includes/templates/template_default/templates/tpl_order_status_default.php (Added in v2.0.0)
  74. /includes/templates/YOUR_TEMPLATE/css/checkout_one.css
  75. /includes/templates/YOUR_TEMPLATE/css/checkout_one_confirmation.css
  76. /includes/templates/YOUR_TEMPLATE/css/checkout_success.css (Added in v2.0.0)
  77. /includes/templates/YOUR_TEMPLATE/css/create_account.css (Added in v2.0.0)
  78. /includes/templates/YOUR_TEMPLATE/css/login.css (Added in v2.0.0)
  79. /YOUR_ADMIN/includes/auto_loaders/config.checkout_one.php
  80. /YOUR_ADMIN/includes/classes/observers/CheckoutOneAdminObserver.php (Added in v2.0.0)
  81. /YOUR_ADMIN/includes/init_includes/init_checkout_one.php
  82. /YOUR_ADMIN/includes/init_includes/init_checkout_one_install.php (Added in v2.3.0)
  83. /YOUR_ADMIN/includes/init_includes/init_checkout_one_upgrade.php (Added in v2.3.0)
  84. /YOUR_ADMIN/includes/languages/english/extra_definitions/checkout_one_name.php

The following Zen Cart core files are not required for initial installations on Zen Cart 1.5.6b and later; changes are already "baked into" that and follow-on Zen Cart versions. Refer to these additional installation/upgrade instructions regarding which files should be copied to your Zen Cart installation's file-system:

  1. /zc155f/includes/classes/order.php (Added in v2.0.0, one marked change section based on the zc155f version of the file)
  2. /zc155f/includes/modules/order_total/ot_coupon.php (Added in v2.0.0, one marked change section based on the zc155f version of the file)
  3. /zc156b/includes/classes/message_stack.php
  4. /zc156b/includes/classes/observers/auto.downloads_via_aws.php (Added in v2.0.4)
  5. /zc156b/includes/classes/observers/auto.downloads_via_redirect.php (Added in v2.0.4)
  6. /zc156b/includes/classes/observers/auto.downloads_via_streaming.php (Added in v2.0.4)
  7. /zc156b/includes/classes/observers/auto.downloads_via_url.php (Added in v2.0.4)
  8. /zc156b/includes/functions/functions_taxes.php (Added in v2.1.4)
  9. /zc156b/includes/modules/downloads.php (Added in v2.1.0, was previously distributed in the YOUR_TEMPLATE sub-directory)
  10. /zc156b/includes/modules/order_total/ot_coupon.php (Added in v2.1.0)
  11. /zc156b/includes/modules/pages/download/header_php.php (Added in v2.0.0)
  12. /zc156b/includes/modules/pages/login/header_php.php (Added in v2.0.0, one marked change-section)
  13. /zc156b/includes/templates/responsive_classic/templates/tpl_ajax_checkout_confirmation_default.php (Added in v2.1.0)
  14. /zc156b/includes/templates/template_default/templates/tpl_ajax_checkout_confirmation_default.php (Added in v1.0.3, previously distributed in the YOUR_TEMPLATE sub-directory)
  15. /zc156b/includes/templates/template_default/templates/tpl_modules_downloads.php (Added in v2.0.5)

You can view the details of these changes on the plugin's GitHub repository. Changes to the plugin's default templates are identified in this color; remember to merge those changes with any template-override version you might have created! Additions are identified by this color.

  • v2.3.2, 2020-05-25:
    • BUGFIX: Don't check for #otshipping until address-related information is supplied (zc157 interoperability).
    • BUGFIX: Ensure that changes to an address' company are properly recorded.
    • BUGFIX: Correct potential PHP warning when store changes the "Gender" customer setting.
    • BUGFIX: Ensure that the "Add to Address Book" checkbox is visible when required.
    • BUGFIX: Guest order-status update emails, point to the order_status page.
    • BUGFIX: Correct address-entry, always use the state dropdown if the address' country has zones.
    • The following files were changed:
      1. /includes/auto_loaders/config.checkout_one.php
      2. /includes/classes/OnePageCheckout.php
      3. /includes/classes/observers/CheckoutOneEmailObserver.php
      4. /includes/modules/pages/checkout_one/jquery.checkout_one.js
      5. /includes/modules/pages/checkout_one/jquery.checkout_one.min.js
      6. /includes/modules/pages/checkout_one/jquery.checkout_one_addr.js
      7. /includes/modules/pages/checkout_one/jquery.checkout_one_addr.min.js
      8. /includes/modules/pages/checkout_one/jscript_main.php
      9. /includes/templates/template_default/templates/tpl_modules_opc_billing_address.php
      10. /includes/templates/template_default/templates/tpl_modules_opc_shipping_address.php
      11. /YOUR_ADMIN/includes/auto_loaders/config.checkout_one.php
      12. /YOUR_ADMIN/includes/init_includes/init_checkout_one.php
  • v2.3.1, 2020-04-26:
    • CHANGE: Notifications added for store-specific session handling.
    • BUGFIX: Correct address display when state dropdowns aren't being used.
    • BUGFIX: Ensure that the session's "order_placed_by_guest" element is cleared post checkout.
    • CHANGE: Enable site-specific customizations to add parameters to an address-related field.
    • BUGFIX: Conditionally load the "Vinos_Browser" class and update that class to v1.9.4 (Dec-2019).
    • BUGFIX: Remove password_forgotten from the list of pages disallowed during guest-checkout.
    • CHANGE: Additional session-values to ignore for the Ceon Sage Pay Direct payment-method.
    • BUGFIX: Correct layout within address-entry blocks for the customer's salutation.
    • BUGFIX: Disallow one-page checkout processing on robot accesses.
    • BUGFIX: Correct guest-customers' order-confirmation email address formatting.
    • BUGFIX: Make it clear that a guest-checkout can continue on the "login" page.
    • The following files were changed:
      1. /includes/classes/OnePageCheckout.php
      2. /includes/classes/Vinos_Browser.php
      3. /includes/classes/observers/class.checkout_one_observer.php
      4. /includes/languages/english/login_guest.php
      5. /includes/templates/template_default/templates/tpl_login_guest.php
      6. /includes/templates/template_default/templates/tpl_modules_opc_address_block.php
      7. /YOUR_ADMIN/includes/init_includes/init_checkout_one.php
      8. /YOUR_ADMIN/includes/init_incldues/init_checkout_one_upgrade.php
  • v2.3.0, 2020-02-18:
    • CHANGE: Split admin initial-install and upgrade scripts, reducing usual memory 'footprint'.
    • CHANGE: Move template-specific 'location' of order's current total to a configuration setting.
    • CHANGE: Gather all 'address_book' fields for pre-existing customers.
    • BUGFIX: Correct 'coupon applied' message repeated.
    • BUGFIX: Use as-passed address information when validating an address.
    • CHANGE: Add a notification, enabling an observer to provide additional address-validation checks.
    • CHANGE: Remove no longer used method OnePageCheckout::validatePostedAddress.
    • CHANGE: Display 'compressed' addresses with an associated Edit button to conserve on-screen real-estate.
    • CHANGE: Dynamically update billing-address title, based on "billing=shipping" selection.
    • CHANGE: Use "standard" responsive_classic formatting for registered-account creation.
    • BUGFIX: Correct checkout processing for registered-account customers who have not yet supplied their default address.
    • BUGFIX: Correct address-display by the "Shipping Estimator" for guest-checkout and registered account-holders.
    • The following files were changed or added:
      1. /includes/classes/OnePageCheckout.php
      2. /includes/classes/observers/class.checkout_one_observer.php
      3. /includes/languages/english/checkout_one.php
      4. /includes/languages/english/create_account_register.php
      5. /includes/modules/pages/checkout_one/jquery_checkout_one.js
      6. /includes/modules/pages/checkout_one/jquery_checkout_one.min.js
      7. /includes/modules/pages/checkout_one/jscript_main.php
      8. /includes/modules/pages/checkout_one_confirmation/header_php.php
      9. /includes/modules/pages/create_account/header_php_create_account_register.php
      10. /includes/templates/template_default/css/checkout_one.css
      11. /includes/templates/template_default/templates/tpl_create_account_register.php
      12. /includes/templates/template_default/templates/tpl_modules_opc_address_block.php
      13. /includes/templates/template_default/templates/tpl_modules_opc_billing_address.php
      14. /includes/templates/YOUR_TEMPLATE/css/checkout_one.css
      15. /YOUR_ADMIN/includes/init_includes/init_checkout_one.php
      16. /YOUR_ADMIN/includes/init_includes/init_checkout_one_install.php
      17. /YOUR_ADMIN/includes/init_includes/init_checkout_one_upgrade.php
  • v2.2.2, 2020-01-15:
    • BUGFIX: Enable interoperation with Ship2Pay payment method.
    • BUGFIX: Use (bool)false to identify no HTML in address labels.
    • BUGFIX: PayPal Express Checkout, address override not recording address' format_id.
    • BUGFIX: Enable interoperation with Ceon Sage Pay Direct payment method.
    • The following files were affected:
      1. /includes/classes/OnePageCheckout.php
      2. /includes/classes/observers/class.checkout_one_observer.php
      3. /includes/modules/pages/checkout_one_confirmation/header_php.php
      4. /YOUR_ADMIN/includes/init_includes/init_checkout_one.php
  • v2.2.1, 2019-11-10:
    • BUGFIX: Restore line-breaks in multi-line order comments.
    • CHANGE: Add notification to allow 'external' processing to disallow guest-checkout.
    • BUGFIX: Zen Cart version-specfic changes needed for the "shipping_estimator"; see this GitHub issue for details.
    • BUGFIX: Changes to paypalwpp.php in the (now corrected) online upgrade instructions caused PHP fatal errors.
    • The following files were affected:
      1. /includes/classes/OnePageCheckout.php
      2. /includes/modules/pages/checkout_one_confirmation/header_php.php
      3. /YOUR_ADMIN/includes/init_includes/init_checkout_one.php
  • v2.2.0, 2019-10-13:
    • BUGFIX: Correct PHP notices for no-longer-enabled payment methods.
    • CHANGE: Remove 'myDEBUG-' prefix on OPC debug filenames.
    • CHANGE: Guest checkout: Combine customer-info and billing-address steps.
    • The following files were affected:
      1. /includes/classes/OnePageCheckout.php
      2. /includes/modules/pages/checkout_one/header_php.php
      3. /includes/modules/pages/checkout_one/jquery.checkout_one.js
      4. /includes/modules/pages/checkout_one/jquery.checkout_one.min.js
      5. /YOUR_ADMIN/includes/init_includes/init_checkout_one.php
  • v2.1.5, 2019-10-01:
    • BUGFIX: Correct tax-locations returned when using temporary addresses and billing equals shipping.
    • CHANGE: Use common constant, if defined, as an option separator for products in the current cart.
    • BUGFIX: Use 'zen_is_logged_in' when checking to see if a customer is logged in.
    • BUGFIX: Correct interoperation with the 'gps' payment method (and possibly more).
    • The following files were affected:
      1. /includes/classes/OnePageCheckout.php
      2. /includes/classes/observer/class.checkout_one_observer.php
      3. /includes/modules/pages/checkout_one_confirmation/header_php.php
      4. /includes/templates/template_default/templates/tpl_modules_opc_shopping_cart.php
      5. /YOUR_ADMIN/includes/init_includes/init_checkout_one.php
  • v2.1.4, 2019-09-15:
    • BUGFIX: Guest accessed to the checkout's shipping-/payment-address pages should go back to the main OPC page.
    • CHANGE: Future-proofing for the inclusion of "Multi-lingual Country Names" in zc157.
    • CHANGE: On entry to the main OPC page, display messages from the 'checkout' group, too.
    • BUGFIX: Correct interaction with paypalwpp, when the delivery address returned by PayPal is different from that entered in the store.
    • BUGFIX: Correct tax-calculations for order totals that use zen_get_tax_locations.
    • The following files were affected:
      1. /includes/classes/OnePageCheckout.php
      2. /includes/classes/observers/class.checkout_one_observer.php
      3. /includes/languages/english/extra_definitions/checkout_one_extra_definitions.php
      4. /includes/templates/template_default/templates/tpl_checkout_one_default.php
      5. /YOUR_ADMIN/includes/init_includes/init_checkout_one.php
      6. /zc156b/includes/functions/functions_taxes.php (Added)
        • Note: Stores running a version of Zen Cart prior to v1.5.6 should copy this file to their store's /includes/functions sub-directory.
  • v2.1.3, 2019-08-04:
    • BUGFIX: order_status page-link missing from information sidebox.
    • BUGFIX: Updates to properly handle the case where javascript is disabled.
    • BUGFIX: Additional guest-account address-book entries improperly recorded.
    • The following files were affected:
      1. /includes/classes/OnePageCheckout.php
      2. /includes/classes/observers/class.checkout_one_observer.php
      3. /includes/functions/extra_functions/one_page_checkout_functions.php
      4. /includes/languages/english/extra_definitions/checkout_one_extra_definitions.php
      5. /includes/modules/sideboxes/YOUR_TEMPLATE/information.php (Added)
      6. /YOUR_ADMIN/includes/init_includes/init_checkout_one.php
  • v2.1.2, 2019-07-02:
    • BUGFIX: Correct the root-cause of the "virtual" issue, previously changed for v2.1.1.
    • BUGFIX: PHP Notice thrown on initial guest account-creation form on the checkout_success page.
    • BUGFIX: Correct interaction with payment methods, e.g. paypaldp, that "collect credit-card info on-site".
    • The following files were affected:
      1. /includes/classes/ajax/zcAjaxOnePageCheckout.php
      2. /includes/modules/pages/checkout_one/jquery.checkout_one.js
      3. /includes/modules/pages/checkout_one/jquery.checkout_one.min.js
      4. /includes/modules/pages/checkout_one_confirmation/header_php.php
      5. /includes/modules/pages/checkout_success/header_php_guest.php
      6. /YOUR_ADMIN/includes/init_includes/init_checkout_one.php
  • v2.1.1, 2019-06-05:
    • BUGFIX: PHP Notice "thrown" when the site doesn't use CSS buttons.
    • BUGFIX: Checkout fails if all products are "virtual".
    • BUGFIX: Add email-format choice to guest account-creation on the checkout_success page.
    • The following files were affected:
      1. /includes/classes/OnePageCheckout.php
      2. /includes/modules/pages/checkout_one_confirmation/header_php.php
      3. /includes/modules/pages/checkout_success/header_php_guest.php
      4. /includes/templates/template_default/templates/tpl_checkout_success_guest.php
      5. /includes/templates/template_default/templates/tpl_modules_opc_credit_selections.php
      6. /YOUR_ADMIN/includes/init_includes/init_checkout_one.php
  • v2.1.0, 2019-04-07:
    • BUGFIX: Return the expected value from OnePageCheckout::startGuestOnePageCheckout.
    • BUGFIX: Correct conditional in the checkout_one page's header processing, causing PHP warnings.
    • CHANGE: zc156 interoperability, empty array from ot_gv causes PHP warning to be logged.
    • BUGFIX: Remove redundant, multiply-defined language constants.
    • BUGFIX: Correct guest-checkout validation.
    • BUGFIX: Customers' temporary addresses not registered if neither guest-checkout nor registered-accounts are enabled.
    • BUGFIX: Don't display address-selection drop-down unless the customer has more than 1 defined.
    • CHANGE: Restructure distribution, for zc156b interoperability.
    • BUGFIX: Correct undefined variable on guest "checkout_success" page.
    • CHANGE: Don't display shipping/payment blocks until associated address is valid.
    • BUGFIX: Correct undefined variables in debug-output on "checkout_one_confirmation" page when order is virtual.
    • BUGFIX: Guest-checkout, billing = shipping doesn't "keep up".
    • BUGFIX: Correct PHP Notice logged when shipping method is untaxed.
    • CHANGE: Disallow guest-checkout when the customer's cart contains Gift Certificates.
    • CHANGE: Add date (yyyy-mm-dd) suffix to any OPC debug-logs.
    • BUGFIX: Disallow One-Page Checkout during the "PayPal Express Checkout"'s shortcut-button processing.
    • BUGFIX: Correct "PHP Notice" issues.
    • BUGFIX: Correct bof/eof HTML comments in the guest-customer's information template.
    • BUGFIX: Correct integration with PayPal Express Checkout.
    • CHANGE: Remove pre-fill of temporary address' state and zipcode, introduced in v2.0.5.
    • BUGFIX: Various corrections to the handling of temporary addresses.
    • BUGFIX: Check for session time-out when handling each AJAX response.
    • BUGFIX: Detect the condition where OPC is disabled in the middle of a customer's checkout.
    • BUGFIX: Include PHP exit() after triggering user errors.
    • CHANGE: Order the drop-down addresses' list to be less haphazard.
    • The following files were affected:
      1. /includes/auto_loaders/paypal_ipn.checkout_one.php (Added)
      2. /includes/classes/OnePageCheckout.php
      3. /includes/classes/OnePageCheckoutNoPayment.php (Added)
      4. /includes/classes/ajax/zcAjaxOnePageCheckout.php
      5. /includes/classes/observers/class.checkout_one_observer.php
      6. /includes/languages/english/checkout_one.php
      7. /includes/languages/english/checkout_one_confirmation.php
      8. /includes/languages/english/extra_definitions/checkout_one_extra_definitions.php
      9. /includes/languages/english/YOUR_TEMPLATE/checkout_confirmation.php
      10. /includes/modules/pages/checkout_one/header_php.php
      11. /includes/modules/pages/checkout_one/jquery.checkout_one.js
      12. /includes/modules/pages/checkout_one/jquery.checkout_one.min.js
      13. /includes/modules/pages/checkout_one/jscript_main.php
      14. /includes/modules/pages/checkout_one_confirmation/header_php.php
      15. /includes/modules/pages/order_status/header_php.php
      16. /includes/templates/template_default/templates/tpl_checkout_one_default.php
      17. /includes/templates/template_default/templates/tpl_checkout_success_guest.php
      18. /includes/templates/template_default/templates/tpl_modules_checkout_one_shipping.php
      19. /includes/templates/template_default/templates/tpl_modules_opc_address_block.php
      20. /includes/templates/template_default/templates/tpl_modules_opc_credit_selections.php
      21. /includes/templates/template_default/templates/tpl_modules_opc_customer_info.php
      22. /includes/templates/template_default/templates/tpl_modules_opc_payment_choices.php
      23. /includes/templates/template_default/templates/tpl_modules_opc_shipping_choices.php
      24. /YOUR_ADMIN/includes/init_includes/init_checkout_one.php
  • v2.0.5, 2018-12-23:
    • BUGFIX: Update totals' block on payment method change; corrects ot_cod_fee handling.
    • BUGFIX: Pick up more recent download class from the Zen Cart zc156 repository.
    • BUGFIX: Customer's gender not being saved when address is changed.
    • BUGFIX: Initialize guest/registered-accounts' zip-code to bypass shipping-method errors.
    • BUGFIX: Taxed order-totals 'lose' their tax on a payment-method update.
    • BUGFIX: 'Square' payment-inputs disappear if the shipping-method is updated.
    • BUGFIX: Correct various "PHP Notice" issues.
    • CHANGE: Partial zc156 integration; downward-compatible changes only.
    • The following files were affected:
      1. /includes/classes/OnePageCheckout.php
      2. /includes/classes/ajax/zcAjaxOnePageCheckout.php
      3. /includes/classes/observers/auto.downloads_via_aws.php
      4. /includes/classes/observers/auto.downloads_via_redirect.php
      5. /includes/classes/observers/auto.downloads_via_streaming.php
      6. /includes/classes/observers/auto.downloads_via_url.php
      7. /includes/modules/pages/checkout_one/jquery.checkout_one.js
      8. /includes/modules/pages/checkout_one/jquery.checkout_one.min.js
      9. /includes/modules/pages/download/header_php.php
      10. /includes/modules/pages/login/header_php.php
      11. /includes/templates/template_default/templates/tpl_modules_downloads.php (Added)
      12. /includes/templates/template_default/templates/tpl_modules_opc_payment_choices.php
      13. /YOUR_ADMIN/includes/init_includes/init_checkout_one.php
  • v2.0.4, 2018-07-15:
    • BUGFIX: "Suburb" (aka "Address Line 2") and/or "Company" not saved when an address is updated.
    • BUGFIX: Maximum address-book entries not honoured.
    • BUGFIX: Downloaded products result in a 0-byte download file.
    • BUGFIX: Guest-customer downloads not honoured automatically on the "checkout_success" page.
    • BUGFIX: Correct interaction with payment methods that "collectCreditCardDataOnSite".
    • The following files were affected:
      1. /includes/classes/OnePageCheckout.php
      2. /includes/classes/observers/auto.downloads_via_aws.php (Added)
      3. /includes/classes/observers/auto.downloads_via_redirect.php (Added)
      4. /includes/classes/observers/auto.downloads_via_streaming.php (Added)
      5. /includes/classes/observers/auto.downloads_via_url.php (Added)
      6. /includes/modules/pages/checkout_one/jquery.checkout_one.js
      7. /includes/modules/pages/checkout_one/jquery.checkout_one.min.js
      8. /YOUR_ADMIN/includes/init_includes/init_checkout_one.php
  • v2.0.3, 2018-06-21:
    • BUGFIX: "Temporary" address shown in confirmation emails for guest-checkout.
    • The following files were affected:
      1. /includes/classes/observers/class.checkout_one_observer.php
      2. /YOUR_ADMIN/includes/init_includes/init_checkout_one.php
  • v2.0.2, 2018-06-20:
    • BUGFIX: Invalid "Some information incorrect" message displayed during guest checkout
    • The following files were affected:
      1. /includes/classes/OnePageCheckout.php
      2. /YOUR_ADMIN/includes/init_includes/init_checkout_one.php
  • v2.0.1, 2018-06-08:
    • BUGFIX: T's and C's checkbox not rendered for "ZCA Bootstrap Template".
    • BUGFIX: Debug-log generated when no shipping methods are available.
    • BUGFIX: Recognize that some payment methods are dependent on the shipping-module selected.
    • BUGFIX: Out-of-stock products not notated in the shopping-cart display.
    • BUGFIX: Correct PHP Notice issued during payment-choices settings.
    • BUGFIX: Full-account shipping-address dropdown selection not rendered.
    • CHANGE: Show "wait" cursor during AJAX processing.
    • BUGFIX: Non-guest temporary addresses not included in order-confirmation email.
    • BUGFIX: Session variables not reset after successful non-guest checkout.
    • BUGFIX: jQuery updates not loaded if cached in the browser.
    • BUGFIX: Formatting variables not maintained during AJAX handling.
    • BUGFIX: Correct handling for the billing- and shipping-address changes.
    • BUGFIX: Correct alignment issue on OPC's replacement login page.
    • BUGFIX: Privacy-statement not displayed during guest checkout, when enabled.
    • BUGFIX: Ensure that temporary form entries have been validated.
    • The following files were affected:
      1. /includes/classes/OnePageCheckout.php
      2. /includes/classes/ajax/zcAjaxOnePageCheckout.php
      3. /includes/classes/observers/class.checkout_one_observer.php
      4. /includes/languages/english/checkout_one_confirmation.php
      5. /includes/modules/pages/checkout_one/header_php.php
      6. /includes/modules/pages/checkout_one/jquery.checkout_one.js
      7. /includes/modules/pages/checkout_one/jquery.checkout_one.min.js
      8. /includes/modules/pages/checkout_one/jscript_main.php
      9. /includes/modules/pages/checkout_one_confirmation/header_php.php
      10. /includes/templates/template_default/css/login.css
      11. /includes/templates/template_default/templates/tpl_modules_opc_conditions.php
      12. /includes/templates/template_default/templates/tpl_modules_opc_payment_choices.php
      13. /includes/templates/template_default/templates/tpl_modules_opc_shipping_address.php
      14. /includes/templates/template_default/templates/tpl_modules_opc_shipping_choices.php
      15. /includes/templates/YOUR_TEMPLATE/css/login.css
      16. /YOUR_ADMIN/includes/init_includes/init_checkout_one.php
  • v2.0.0, 2018-04-27:
    • CHANGE: Add processing to enable guest-checkout and registered-accounts features.
    • CHANGE: Enable interoperation with the ZCA Bootstrap Template.
    • BUGFIX: "Align" STOCK_CHECK clause in shipping checks with checkout_shipping current handling.
    • BUGFIX: Redirects to the time_out pages via SSL protocol.
    • BUGFIX: Correct integration with Product Delivery by Postcode.
    • BUGFIX: Correct integration with the PayPal Express Checkout shortcut button.
    • The following files were affected:
      1. /includes/auto_loaders/config.checkout_one.php
      2. /includes/classes/OnePageCheckout.php
      3. /includes/classes/order.php (Added, one notifier)
      4. /includes/classes/ajax/zcAjaxOnePageCheckout.php
      5. /includes/classes/observers/class.checkout_one_observer.php
      6. /includes/extra_datafiles/checkout_one_filenames.php
      7. /includes/functions/extra_functions/one_page_checkout_functions.php
      8. /includes/languages/english/address_book_register.php
      9. /includes/languages/english/checkout_one.php
      10. /includes/languages/english/checkout_process_guest.php
      11. /includes/languages/english/checkout_success_guest.php
      12. /includes/languages/english/create_account_register.php
      13. /includes/languages/english/create_account_success_register.php
      14. /includes/languages/english/login_guest.php
      15. /includes/languages/english/order_status.php
      16. /includes/languages/english/extra_definitions/checkout_one_extra_definitions.php
      17. /includes/languages/english/html_includes/define_checkout_success_guest.php
      18. /includes/languages/english/html_includes/YOUR_TEMPLATE/define_checkout_success_guest.php
      19. /includes/modules/order_total/ot_coupon.php (Added, one notifier)
      20. /includes/modules/pages/address_book/header_php_address_book_register.php
      21. /includes/modules/pages/address_book/main_template_vars.php
      22. /includes/modules/pages/checkout_one/header_php.php
      23. /includes/modules/pages/checkout_one/jquery.checkout_one.js
      24. /includes/modules/pages/checkout_one/jquery.checkout_one.min.js
      25. /includes/modules/pages/checkout_one/jquery.checkout_one_addr.js
      26. /includes/modules/pages/checkout_one/jquery.checkout_one_addr.min.js
      27. /includes/modules/pages/checkout_one/jscript_main.php
      28. /includes/modules/pages/checkout_one_confirmation/header_php.php
      29. /includes/modules/pages/address_book/main_template_vars.php
      30. /includes/modules/pages/checkout_success/header_php_guest.php
      31. /includes/modules/pages/checkout_success/main_template_vars.php
      32. /includes/modules/pages/create_account/header_php_create_account_register.php
      33. /includes/modules/pages/create_account/jscript_form_check_register.php
      34. /includes/modules/pages/create_account/main_template_vars.php
      35. /includes/modules/pages/create_account_success/header_php_create_account_success_register.php
      36. /includes/modules/pages/create_account_success/main_template_vars.php
      37. /includes/modules/pages/download/header_php.php (Added, zc156 version with timeout pages in SSL)
      38. /includes/modules/pages/login/header_php.php (Added, one notifier)
      39. /includes/modules/pages/login/header_php_guest.php
      40. /includes/modules/pages/login/main_template_vars.php
      41. /includes/modules/pages/order_status/header_php.php
      42. /includes/modules/YOUR_TEMPLATE/downloads.php (Added, using the zc156 version)
      43. /includes/templates/template_default/css/checkout_one.css
      44. /includes/templates/template_default/css/checkout_success.css
      45. /includes/templates/template_default/css/create_account.css
      46. /includes/templates/template_default/css/login.css
      47. /includes/templates/template_default/tpl_address_book_register.php
      48. /includes/templates/template_default/templates/tpl_checkout_one_default.php
      49. /includes/templates/template_default/tpl_checkout_success_guest.php
      50. /includes/templates/template_default/tpl_create_account_register.php
      51. /includes/templates/template_default/tpl_create_account_success_register.php
      52. /includes/templates/template_default/templates/tpl_login_guest.php
      53. /includes/templates/template_default/templates/tpl_modules_opc_address_block.php
      54. /includes/templates/template_default/templates/tpl_modules_opc_billing_address.php
      55. /includes/templates/template_default/tpl_modules_opc_credit_selections.php
      56. /includes/templates/template_default/tpl_modules_opc_customer_info.php
      57. /includes/templates/template_default/templates/tpl_modules_opc_payment_choices.php
      58. /includes/templates/template_default/templates/tpl_modules_opc_shipping_address.php
      59. /includes/templates/template_default/templates/tpl_modules_opc_shopping_cart.php
      60. /includes/templates/template_default/templates/tpl_modules_opc_submit_block.php
      61. /includes/templates/template_default/templates/tpl_order_status_default.php
      62. /includes/templates/YOUR_RC_CLONE/common/tpl_header.php (Added)
      63. /includes/templates/YOUR_TEMPLATE/common/tpl_header.php (Added)
      64. /includes/templates/YOUR_TEMPLATE/css/checkout_one.css
      65. /includes/templates/YOUR_TEMPLATE/css/checkout_success.css (Added)
      66. /includes/templates/YOUR_TEMPLATE/css/create_account.css (Added)
      67. /includes/templates/YOUR_TEMPLATE/css/login.css (Added)
      68. /includes/templates/YOUR_TEMPLATE/templates/tpl_modules_download.php (Added, using the zc156 version)
      69. /YOUR_ADMIN/includes/auto_loaders/config.checkout_one.php
      70. /YOUR_ADMIN/includes/classes/observers/OnePageCheckoutAdminObserver.php
      71. /YOUR_ADMIN/includes/init_includes/init_checkout_one.php
      72. /YOUR_ADMIN/includes/languages/english/extra_definitions/checkout_one_name.php
  • v1.5.0, 2018-01-10:
    • CHANGE: Defer installation until an admin is logged in.
    • CHANGE: Split major template-blocks on the checkout_one page into separate files.
    • CHANGE: Update the checkout_one page's jQuery to allow the major processing to be a separate file.
    • The following files were affected:
      1. /includes/modules/pages/checkout_one/jquery.checkout_one.js
      2. /includes/modules/pages/checkout_one/jquery.checkout_one.min.js
      3. /includes/pages/checkout_one/jscript_main.php
      4. /includes/pages/checkout_one/on_load_main.js (No longer used; empty file)
      5. /includes/templates/template_default/templates/tpl_checkout_one_default.php
      6. /includes/templates/template_default/templates/tpl_modules_opc_billing_address.php
      7. /includes/templates/template_default/templates/tpl_modules_opc_comments.php
      8. /includes/templates/template_default/templates/tpl_modules_opc_conditions.php
      9. /includes/templates/template_default/templates/tpl_modules_opc_credit_selections.php
      10. /includes/templates/template_default/templates/tpl_modules_opc_instructions.php
      11. /includes/templates/template_default/templates/tpl_modules_opc_payment_choices.php
      12. /includes/templates/template_default/templates/tpl_modules_opc_shipping_address.php
      13. /includes/templates/template_default/templates/tpl_modules_opc_shipping_choices.php
      14. /includes/templates/template_default/templates/tpl_modules_opc_shopping_cart.php
      15. /includes/templates/template_default/templates/tpl_modules_opc_submit_block.php
      16. /YOUR_ADMIN/includes/init_includes/init_checkout_one.php
      17. /YOUR_ADMIN/includes/languages/english/extra_definitions/checkout_one_name.php
  • v1.4.2, 2017-12-11:
    • BUGFIX: Correct interaction of PayPal Express Checkout's shortcut button. See this readme's Overview / Payment Method Interoperation tab for additional information.
    • The following files were affected:
      1. /includes/modules/pages/checkout_one/header_php.php
      2. /YOUR_ADMIN/includes/init_includes/init_checkout_one.php
  • v1.4.1, 2017-10-08:
    • BUGFIX: Correct display of confirmation page when a payment method "collects credit-card data onsite" and is configured to display its confirmation page.
    • BUGFIX: Errors from "collects credit-card data onsite" payment methods not displayed.
    • CHANGE: Updated the Troubleshooting section in this readme, to identify where to find what "required elements" are missing.
    • The following files were affected:
      1. /includes/modules/pages/checkout_one/jscript_main.php
      2. /includes/templates/YOUR_TEMPLATE/jscript/jscript_framework.php
      3. /includes/templates/template_default/jscript/jscript_framework.php (Removed from this distribution only.)
      4. /YOUR_ADMIN/includes/init_includes/init_checkout_one.php
  • v1.4.0, 2017-08-12:
    • BUGFIX: Correct HTML validation error when the "Terms and Conditions" block is present.
    • CHANGE: Enable payment methods that "collect credit-card data on-site" to be one-page, too!
    • BUGFIX: Correct HTML validation error when CSS buttons are configured for the store.
    • CHANGE: Check for multiple versions of jQuery and direct the customer to the "alternate" checkout if found.
    • CHANGE: Modify the "confirmation email will be sent to" language text, removing any reference to order-submittal to reduce potential customer confusion.
    • The following files were affected:
      1. /includes/languages/english/checkout_one.php
      2. /includes/modules/pages/checkout_one/header_php.php
      3. /includes/modules/pages/checkout_one/jscript_main.php
      4. /includes/templates/template_default/css/checkout_one.css
      5. /includes/templates/template_default/templates/tpl_checkout_one_default.php
      6. /includes/templates/YOUR_TEMPLATE/css/checkout_one.css
      7. /YOUR_ADMIN/includes/init_includes/init_checkout_one.php
  • v1.3.0, 2017-07-12:
    • CHANGE: Standardize processing flow through "checkout_one" page.
    • CHANGE: Add HTML comments around "significant" sections in the OPC main template.
    • CHANGE: Add configuration control to enable/disable the Shipping Address, same as Billing support.
    • CHANGE: Document the interoperability of the ozPost shipping module and the Payeezy payment module.
    • CHANGE: Move payment-modules requiring confirmation to a configurable setting.
    • CHANGE: Recognize payment methods that require confirmation, adjust the submit-button accordingly.
    • CHANGE: Modify distribution-method of core-file changes; most of those changes were "up-leveling" the current Zen Cart distribution version.
    • CHANGE: Provide an alternate link to the "normal" multi-page checkout if a jQuery error is detected on the OPC initial page.
    • The following files were affected:
      1. /includes/classes/observers/class.checkout_one_observer.php
      2. /includes/languages/english/checkout_one.php
      3. /includes/modules/pages/checkout_one/jscript_main.php
      4. /includes/modules/pages/checkout_one/header_php.php
      5. /includes/templates/template_default/css/checkout_one.css
      6. /includes/templates/template_default/templates/tpl_checkout_one_default.php
      7. /includes/templates/YOUR_TEMPLATE/css/checkout_one.css
      8. /YOUR_ADMIN/includes/init_includes/init_checkout_one.php
  • v1.2.0, 2017-04-23:
    • BUGFIX: Correct "Shipping, same as Billing" processing.
    • CHANGE: Add Edit button to shopping-cart block on checkout pages.
    • BUGFIX: Correct checkout-loop after a 100%-off coupon is applied to an order.
    • CHANGE: Document that the YourSite template and ot_prowebsoptions order-total are incompatible.
    • CHANGE: Document that the NoChex and payment methods are compatible.
    • BUGFIX: Unwanted "Your order has changed" message received after applying a credit-class order-total to the order.
    • BUGFIX: Correct conditionally-enabling the plugin causes checkout-loop.
    • The following files were affected:
      1. /includes/classes/ajax/zcAjaxOnePageCheckout.php
      2. /includes/classes/observers/class.checkout_one_observer.php
      3. /includes/modules/pages/checkout_one/header_php.php
      4. /includes/modules/pages/checkout_one/jscript_main.php
      5. /includes/modules/pages/checkout_one_confirmation/header_php.php
      6. /includes/templates/template_default/css/checkout_one.css
      7. /includes/templates/template_default/templates/tpl_checkout_one_default.php
      8. /includes/templates/YOUR_TEMPLATE/css/checkout_one.css
      9. /YOUR_ADMIN/includes/init_includes/init_checkout_one.php
  • v1.1.0, 2017-01-22:
    • BUGFIX: Shipping cost not updated if shopping-cart change results in a cost-change to the selected shipping-module.
    • BUGFIX: Checkout loop if order's currency's symbol uses an "htmlentity", e.g. &pound;.
    • BUGFIX: Order-totals duplicated on confirmation page.
    • CHANGE: Add configuration setting to "conditionally" enable the plugin for a list of customer_id values.
    • CHANGE: Add the Gateway Processing Services Module (3-step redirect) payment module to the "confirmation-page required" list.
    • The following files were affected:
      1. /includes/classes/observers/class.checkout_one_observer.php
      2. /includes/modules/pages/checkout_one/header_php.php
      3. /includes/modules/pages/checkout_one_confirmation/header_php.php
      4. /includes/templates/template_default/templates/tpl_checkout_one_confirmation_default.php
      5. /YOUR_ADMIN/includes/init_includes/init_checkout_one.php
  • v1.0.11, 2016-12-29:
    • CHANGE: Position cursor on top-of-page when displaying the "collectsCardDataOnsite" confirmation.
    • CHANGE: Correct interoperation with Ceon Manual Card payment method.
    • BUGFIX: Correct checkout "loop" when Free Shipping for Orders Over is enabled in the shipping order-total.
    • BUGFIX: Correct checkout "loop" when a shipping module's cost is taxed.
    • The following files were affected:
      1. /includes/classes/observers/class.checkout_one_observer.php
      2. /includes/modules/pages/checkout_one/header_php.php
      3. /includes/modules/pages/checkout_one/jscript_main.php
      4. /includes/modules/pages/checkout_one_confirmation/header_php.php
      5. /includes/templates/template_default/templates/tpl_checkout_one_default.php
      6. /YOUR_ADMIN/includes/init_includes/init_checkout_one.php
  • v1.0.10, 2016-12-07:
    • BUGFIX: Correct interaction with Zen Cart 1.5.4 version of ot_gv.
    • BUGFIX: Re-instate check for a change in the order's total during confirmation.
    • BUGFIX: Cheapest shipping not selected if only one shipping-method is available.
    • The following files were affected:
      1. /includes/classes/observers/class.checkout_one_observer.php
      2. /includes/modules/pages/checkout_one/header_php.php
      3. /includes/modules/pages/checkout_one_confirmation/header_php.php
      4. /YOUR_ADMIN/includes/init_includes/init_checkout_one.php
  • v1.0.9, 2016-11-23:
    • BUGFIX: No payment modules displayed on the checkout_one page.
    • BUGFIX: No confirmation button for virtual-orders or orders with free shipping
    • BUGFIX: Missing $order_totals variable, required by some payment methods (e.g. firstdata_hco).
    • The following files were affected:
      1. /includes/templates/template_default/templates/tpl_checkout_one_default.php
      2. /includes/templates/template_default/templates/tpl_checkout_one_confirmation_default.php
      3. /YOUR_ADMIN/includes/init_includes/init_checkout_one.php
  • v1.0.8, 2016-11-19:
    • BUGFIX: Correct interoperation with plugins that make use of other, e.g. MooTools javascript libraries.
    • BUGFIX: Conditionally render sections of the page, depending on the availability of a shipping-method and/or payment-method.
    • BUGFIX: Correct the change needed for the Stripe payment method.
    • BUGFIX: Can't checkout if order qualifies for "free shipping" by the shipping order-total.
    • The following files were affected:
      1. /includes/classes/ajax/zcAjaxOnePageCheckout.php
      2. /includes/languages/english/extra_definitions/checkout_one_extra_definitions.php
      3. /includes/classes/observers/class.checkout_one_observer.php
      4. /includes/modules/pages/checkout_one/header_php.php
      5. /includes/modules/pages/checkout_one/jscript_main.php
      6. /includes/modules/pages/checkout_one_confirmation/header_php.php
      7. /includes/modules/pages/checkout_one_confirmation/jscript_main.php
      8. /includes/templates/template_default/jscript/jscript_framework.php
      9. /includes/templates/template_default/templates/tpl_checkout_one_default.php
      10. /includes/templates/YOUR_TEMPLATE/jscript/jscript_framework.php
      11. /YOUR_ADMIN/includes/init_includes/init_checkout_one.php
  • v1.0.7, 2016-10-19:
    • BUGFIX: Can't checkout due to session-information change.
    • CHANGE: Use updated /ajax.php from the Zen Cart repository's 155 branch ... again.
    • The following files were affected:
      1. /ajax.php
      2. /includes/classes/observers/class.checkout_one_observer.php
      3. /includes/modules/pages/checkout_one_confirmation/header_php.php
      4. /YOUR_ADMIN/includes/init_includes/init_checkout_one.php
  • v1.0.6, 2016-10-18:
    • CHANGE: Add support for the Stripe payment method; it requires the confirmation-page's display.
    • BUGFIX: Ensure that the order's total has been properly reviewed by the customer.
    • BUGFIX: Don't require shipping order-total selector if the order contains only virtual products.
    • BUGFIX: Correct product stock-check handling.
    • BUGFIX: Shipping, same as Billing not being honored after shipping address change.
    • CHANGE: Use updated /ajax.php from the Zen Cart repository's 155 branch.
    • The following files were affected:
      1. /ajax.php
      2. /includes/modules/pages/checkout_one/header_php.php
      3. /includes/modules/pages/checkout_one/jscript_main.php
      4. /includes/modules/pages/checkout_one_confirmation/header_php.php
      5. /YOUR_ADMIN/includes/init_includes/init_checkout_one.php
  • v1.0.5, 2016-09-24:
    • CHANGE: Update jQuery to check for (and alert if missing) required selectors.
    • CHANGE: Replace occurrences of [code] to allow log files to be properly posted on the Zen Cart forums.
    • BUGFIX: Hide the "bannerOne" block on the confirmation page.
    • BUGFIX: Hide the "Confirm Order" button on the confirmation page.
    • The following files were affected:
      1. /includes/classes/observers/class.checkout_one_observer.php
      2. /includes/modules/pages/checkout_one/jscript_main.php
      3. /includes/modules/pages/checkout_one_confirmation/jscript_main.php
      4. /includes/templates/template_default/css/checkout_one_confirmation.css
      5. /includes/templates/template_default/templates/tpl_checkout_one_confirmation_default.php
      6. /includes/templates/YOUR_TEMPLATE/css/checkout_one_confirmation.css
      7. /YOUR_ADMIN/includes/init_includes/init_checkout_one.php
  • v1.0.4, 2016-09-11:
    • BUGFIX: Make sure that the #bannerSix block is also hidden on the plugin's confirmation page.
    • CHANGE: Add language constant for the confirmation page, allowing store-owners to have additional customization opportunities.
    • BUGFIX: Sanitize debug-output for non-standard credit-card numbers and CVV information.
    • BUGFIX: Don't allow one-page checkout on unsupported browsers (currently limited to IE versions less than 9.0).
    • BUGFIX: Correct spelling of ROBOTS_PAGES_TO_SKIP in the readme's installation instructions.
    • BUGFIX: Correct processing for orders that qualify for the "free_free" shipping method, e.g. virtual products only and free shipping as configured by the shipping order-total module.
    • BUGFIX: Correct readme references to /includes/languages/english/order_total to /includes/languages/english/modules/order_total.
    • The following files were affected:
      1. /includes/classes/Vinos_Browser.php (Added)
      2. /includes/classes/ajax/zcAjaxOnePageCheckout.php
      3. /includes/classes/observers/class.checkout_one_observer.php
      4. /includes/languages/english/checkout_one.php
      5. /includes/languages/english/checkout_one_confirmation.php
      6. /includes/modules/pages/checkout_one/jscript_main.php
      7. /includes/modules/pages/checkout_one_confirmation/jscript_main.php
      8. /includes/templates/template_default/templates/tpl_checkout_one_default.php
      9. /includes/templates/template_default/templates/tpl_checkout_one_confirmation_default.php
      10. /YOUR_ADMIN/includes/init_includes/init_checkout_one.php
  • v1.0.3, 2016-09-02:
    • CHANGE: Disable plugin if the active template doesn't include jscript_framework.php
    • CHANGE: Update documentation to ensure that the v1.5.5a version of jscript_framework.php gets copied.
    • BUGFIX: Correct handling of AJAX request timeouts on the shipping-method change.
    • BUGFIX: Correct interlock with "collectsCardDataOnsite" payment methods and shipping methods that require "extra" information.
    • BUGFIX: Correct Zen Cart 1.5.5a payment-class handling of "collectsCardDataOnsite" payment methods.
    • BUGFIX: Unfinished form submittal occurs when payment method "collectsCardDataOnsite".
    • CHANGE: Identify known template incompatibilities in the readme.
    • The following files were affected:
      1. /includes/classes/ajax/zcAjaxOnePageCheckout.php
      2. /includes/languages/english/checkout_one.php
      3. /includes/modules/pages/checkout_one/jscript_main.php
      4. /includes/templates/template_default/jscript/jscript_framework.php (Added, the ZC1.5.5a version of the file)
      5. /includes/templates/YOUR_TEMPLATE/jscript/jscript_framework.php (Added, the ZC1.5.5a version of the file)
      6. /includes/templates/YOUR_TEMPLATE/templates/tpl_ajax_checkout_confirmation_default.php (Added)
      7. /zc155a/includes/classes/payment.php (Added)
      8. /YOUR_ADMIN/includes/init_includes/init_checkout_one.php
      9. /YOUR_ADMIN/includes/languages/english/extra_definitions/checkout_one_name.php
      10. /pre_zc155a/includes/templates/template_default/jscript/jscript_framework.php (Removed)
      11. /pre_zc155a/includes/templates/YOUR_TEMPLATE/jscript/jscript_framework.php (Removed)
  • v1.0.2, 2016-08-19:
    • BUGFIX: Display payment-method block when in "special checkout" (i.e. PayPal Express Checkout/Shortcut Button).
    • BUGFIX: Gracefully handle session timeouts during the checkout process.
    • BUGFIX: Correct AJAX session-save handling.
    • BUGFIX: Correct interoperation with shipping-methods that have additional data; also corrects handling when the chosen shipping method is no longer valid.
    • BUGFIX: Include both ZC1.5.4 and 1.5.5 versions of collectsCardDataOnSite handling.
    • BUGFIX: Check customer's authorization after checking that they're logged in.
    • BUGFIX: Form won't submit on IE-11 browser.
    • CHANGE: Provide pre-integration of Product Delivery by Postcode (PDP) plugin.
    • BUGFIX: Missing semi-colon in language-file override.
    • BUGFIX: Debug-log generated when coupon applied and shipping-method changed.
    • The following files were affected:
      1. /ajax.php (Added)
      2. /includes/classes/ajax/zcAjaxOnePageCheckout.php
      3. /includes/languages/english/checkout_one.php
      4. /includes/languages/english/YOUR_TEMPLATE/checkout_confirmation.php
      5. /includes/modules/pages/checkout_one/header_php.php
      6. /includes/modules/pages/checkout_one/jscript_main.php
      7. /includes/modules/pages/checkout_one_confirmation/header_php.php
      8. /includes/modules/pages/checkout_one_confirmation/jscript_main.php
      9. /includes/templates/template_default/templates/tpl_checkout_one_default.php
      10. /includes/templates/template_default/templates/tpl_checkout_one_confirmation_default.php
      11. /includes/templates/template_default/templates/tpl_modules_checkout_one_shipping.php (Added)
      12. /YOUR_ADMIN/includes/init_includes/init_checkout_one.php
      13. /pre_zc155a/ajax.php (Removed)
  • v1.0.1, 2016-08-06:
    • BUGFIX: Check customer's authorization.
    • BUGFIX: Zen Cart base AJAX handling changes required for Zen Cart 1.5.5 (pre-a) installations, too.
    • BUGFIX: Display "Terms and Conditions" block, if configured.
    • BUGFIX: Enable support for payment methods (like eWay Rapid) that insert form-handling HTML into their "process_button" function's output.
    • BUGFIX: On initial entry, the order's total sometimes didn't include the proper shipping cost.
    • CHANGE: Additional debug configuration added to enable strict PHP processing for the One-Page Checkout page.
    • CHANGE: Provide pre-integration of the Products' Options' Stock Manager; yes, it's a shameless plug!
    • The following files were affected:
      1. /includes/classes/observers/class.checkout_one_observer.php
      2. /includes/languages/english/checkout_one_confirmation.php
      3. /includes/modules/pages/checkout_one/header_php.php
      4. /includes/modules/pages/checkout_one_confirmation/header_php.php
      5. /includes/modules/pages/checkout_one_confirmation/jscript_main.php
      6. /includes/templates/template_default/css/checkout_one_confirmation.css
      7. /includes/templates/template_default/templates/tpl_checkout_one_default.php
      8. /includes/templates/template_default/templates/tpl_checkout_one_confirmation_default.php
      9. /includes/templates/YOUR_TEMPLATE/css/checkout_one_confirmation.css
      10. /YOUR_ADMIN/includes/init_includes/init_checkout_one.php
      11. /zc154_only/*.* renamed to /pre_zc155a/*.*
  • v1.0.0, 2016-07-30:
    • Initial public release.