Last update: December 10th, 2024
Update: Included information about compatibility with plugins Delivery & Pickup Date Time for WooCommerce by CodeRockz (free and PRO) moved to the Fluid Checkout PRO, and how to get the legacy plugin with this compatibility for current users for a limited time.
Fluid Checkout Lite 4.0 will be released soon with important changes that might impact your website if you have made customizations to our plugins or added code snippets to change how our plugin works.
If your website does not have any customizations or code snippets, it should work in the same way as before updating it to these newer versions.
The information contained in this customizations migration guide is meant for Developers and customers who are comfortable with editing PHP code. If that is not you, jump to the section “Will these changes affect my website?” or forward this guide to your developer to check it for you.
In short:
- These changes only affect websites that have added customizations for our plugins;
- Along with Fluid Checkout Lite 4.0+, we will also release updates for the PRO plugin and other add-ons;
- When using custom sub-steps, they will need to be registered using the new appropriate functions;
- Some filter hooks have changed names and parameters;
- Some template files have changed and might need to be updated.
All you need to know to be prepared for these changes:
- Will these changes affect my website?
- Why are these changes necessary?
- Which plugins and add-ons are being updated with these changes?
- My website has customizations, how can I know if my website will be affected or not?
- Making your customizations compatible with the upcoming changes
- Applying changes to your customizations
- Compatibility with plugins Delivery & Pickup Date Time for WooCommerce by CodeRockz (free and PRO) moved to the Fluid Checkout PRO
We will update this guide when the new versions of the plugins are released with these changes or whenever necessary.
Get our product updates in your inbox
You will receive release notes and information about how to get the most out of our plugins.
We don’t spam! Read our privacy policy for more info.
Will these changes affect my website?
Your website will only be affected by these changes if you have customizations added to it, and if these customization are related to the parts of the plugin that changed.
These changes will NOT affect your website if:
- Your website does have not added any customizations for Fluid Checkout or any of the add-ons;
- Your website does not use any code snippets related to Fluid Checkout or any of the add-ons;
- Your website does not have any customizations for the template file
cart/cart-items.php
.
The information contained in this customizations migration guide is meant for Developers and customers who are comfortable with editing PHP code. If you are still unsure if these changes will affect your website, please forward this guide to your developer to check it for you.
Why are these changes necessary?
We try as much as possible to avoid making changes that could break websites using Fluid Checkout or any customizations made to it, but sometimes these changes are necessary. If you are using Fluid Checkout without customizations made in code, these changes will not likely affect your website as explained in the section “Will these changes affect my website?” above.
Previously to Fluid Checkout Lite 4.0+, sub-step sections were directly displayed to the step sections. This limited how Fluid Checkout could work with and manipulate the sub-step sections.
We decided that it was time to overcome this limitation and prepare Fluid Checkout for adding new features in the future, such as the much requested Order Pay page optimization feature coming to Fluid Checkout PRO soon after these new versions are released.
Which plugins and add-ons are being updated with these changes?
Along with Fluid Checkout Lite 4.0+, the following add-ons will also be updated with these changes:
- Fluid Checkout Lite 4.0+
- Fluid Checkout PRO 3.0+
- Address Book 3.0+
- EU-VAT Assistant 2.0+
My website has customizations, how can I know if my website will be affected?
The best way would be to test the upcoming update directly in a test/staging copy of your website. If you have a test/staging copy of your website, you can use the beta version from the link below:
For customers with a valid license key for Fluid Checkout PRO or any of the add-ons, if you need to update your customizations, please open a support ticket requesting the beta versions for these plugins:
- PRO: upon request
- Address Book: upon request
- EU-VAT Assistant: upon request
If you encounter any issue while using this beta version, please open a support ticket and we will work to fix these issues before releasing the official update.
Otherwise, you can also search through the code of your website and look for any reference to the parts that have changed. These are the places that customizations are most likely added:
- In the file
functions.php
in your theme or child theme; - Code snippets added using plugins such as Code Snippets;
- Custom plugins created specifically for your website.
Search for any references to:
output_substep_start_tag
output_substep_end_tag
fc_is_step_complete_billing_field_keys_skip_list
fc_output_step_
which target any references to any step sections, such asfc_output_step_shipping
orfc_output_step_billing
and others steps.
And if you are using Fluid Checkout PRO, also search for references to:
- Template file
cart/cart-items.php
If you encounter any reference to the changed parts above, your website will likely be affected. In that case, continue reading this guide and make the necessary changes as explained.
If you are still not sure whether your website will be affected and need help with this, please open a support ticket.
Making your customizations compatible with the upcoming changes
These are the changes that will likely require changes to your customizations to be compatible with the upcoming updates:
Fluid Checkout Lite 4.0+
- Sub-step sections now need to be registered
- Parameter
$substep_title
has been removed for the functionsoutput_substep_start_tag
andoutput_substep_end_tag
- Filter hook
fc_is_step_complete_billing_field_keys_skip_list
renamed tofc_is_substep_complete_billing_address_field_keys_skip_list
- Use functions
is_feature_enabled
provided by each feature class to check if a specific feature is enabled
Fluid Checkout PRO 3.0+
- Template file
cart/cart-items.php
has modified, the cart items table has been moved to a separate template filecart/cart-items-table.php
- Filter hooks for compatibility with the plugin Checkout Field Editor PRO by Themehigh changed:
Sub-step sections now need to be registered
Previously to this version, sub-step sections were displayed by directly outputting the sub-step sections inside the step sections using action hooks such as fc_output_step_shipping
or fc_output_step_billing
.
Since Fluid Checkout Lite version 4.0+, sub-step sections need to be registered similarly to how step sections are registered.
When registering a new sub-step section, please note that:
- You can only do it after the default steps and sub-steps have already been registered which happens at the action hook
wp
priority10
; - You need to provide the values for the step id, sub-step id, sub-step title, a function to render the sub-step fields, and a function to render the sub-step review text;
- Optionally, you can also provide a function to determine if the sub-step should be considered complete, otherwise it will always be considered complete; and
- Optionally, you can provide a list of HTML attributes to be added to the sub-step section start tag.
See complete example below:
/**
* Output checkout fields for the custom substep.
*
* @param string $step_id Id of the step in which the substep will be rendered.
* @param string $substep_id Id of the substep.
*/
function fluidcheckout_output_custom_substep_fields( $step_id, $substep_id ) {
// Code to output your custom sub-step checkout fields
echo 'FIELDS';
}
/**
* Output the substep review text for the custom substep.
*
* @param string $step_id Id of the step in which the substep will be rendered.
* @param string $substep_id Id of the substep.
*/
function fluidcheckout_output_custom_substep_review_text( $step_id, $substep_id ) {
// Code to output your custom sub-step review text, displayed when the step is completed.
echo 'REVIEW TEXT';
}
/**
* Determines if custom substep should be considered complete.
*
* @return boolean `true` if the substep is complete, `false` otherwise.
*/
function fluidcheckout_is_custom_substep_complete() {
// Checks for any criteria that would indicate the substep is not complete.
// Return boolean value indicating if the substep is complete
return true;
}
/**
* Maybe register substeps
*/
function fluidcheckout_register_custom_substeps() {
// Define variables
$step_id = 'shipping';
// Register custom substep
FluidCheckout_Steps::instance()->register_checkout_substep( $step_id, array(
'substep_id' => 'your_substep_id',
'substep_title' => __( 'Custom substep title', 'your-text-domain' ),
'priority' => 20,
'render_fields_callback' => 'fluidcheckout_output_custom_substep_fields',
'render_review_text_callback' => 'fluidcheckout_output_custom_substep_review_text',
'is_complete_callback' => 'fluidcheckout_is_custom_substep_complete', // Optional, defaults to `true`
'additional_attributes' => array(), // Optional, array of additional attributes to add to the substep container start tag.
) );
}
add_action( 'wp', 'fluidcheckout_register_custom_substeps', 500 );
Change sub-step section titles
If you had customized the title for any existing sub-step section, these changes will probably not be affected and you can still use the filter hooks fc_substep_title_{$substep_id}
, replacing {$substep_id}
with the actual sub-step id.
For more information on this visit the documentation article Customize checkout steps.
Fix usage of functions output_substep_start_tag
and output_substep_end_tag
The parameter $substep_title
previously passed into the functions output_substep_start_tag
and output_substep_end_tag
has been removed as it became obsolete.
Since sub-step sections now need to be registered, you will likely not need to use these functions. But in case you still need to use these functions directly, you will have to adapt your code to remove the $substep_title
parameters when calling them.
Example of calling these functions with the updated version:
// Define variables
$step_id = 'shipping';
$substep_id = 'shipping_method';
$additional_attributes = array( 'class' => 'substep' );
$output_edit_buttons = true;
// Output start tags for the substep section
FluidCheckout_Steps::instance()->output_substep_start_tag( $step_id, $substep_id, $additional_attributes );
do_something_else();
// Output end tags for the substep section
FluidCheckout_Steps::instance()->output_substep_end_tag( $step_id, $substep_id, $output_edit_buttons );
Fix usage of filter hook fc_is_step_complete_billing_field_keys_skip_list
The filter fc_is_step_complete_billing_field_keys_skip_list
has been renamed to fc_is_substep_complete_billing_address_field_keys_skip_list
because it is only related to the billing address sub-step and not the entire billing step.
Simply changing the name of the filter hook will fix its usage.
Use functions is_feature_enabled
to check whether features are enabled
Previously to Fluid Checkout 4.0+, when checking if a specific feature is enabled or not you would have to get the option values directly and check whether the selected value matches a specific criteria.
To simplify this process, most feature classes from Fluid Checkout now provide the function is_feature_enabled
which returns a true/false
value and applies any specific criteria to determine if the feature is currently enabled. These functions are available on Fluid Checkout Lite, PRO and all the add-ons.
Example: check if the feature to hide optional fields is enabled:
// Check whether the feature is enabled
if ( class_exists( 'FluidCheckout_CheckoutHideOptionalFields' ) && method_exists( 'FluidCheckout_CheckoutHideOptionalFields', 'is_feature_enabled' ) && FluidCheckout_CheckoutHideOptionalFields::is_feature_enabled() ) {
// DO SOMETHING
}
Example: check if the feature to edit cart items at checkout is enabled:
// Check whether the feature is enabled
if ( class_exists( 'FluidCheckout_PRO_CheckoutEditCart' ) && method_exists( 'FluidCheckout_PRO_CheckoutEditCart', 'is_feature_enabled' ) && FluidCheckout_PRO_CheckoutEditCart::is_feature_enabled() ) {
// DO SOMETHING
}
Fix cart items table has been moved from cart/cart-items.php
to a separate template file
The cart items table displayed from the template file cart/cart-items.php
has been moved to a new and separate template file cart/cart-items-table.php
. This change gives us the ability to update the cart items table separately from the enclosing section on the cart page, which is necessary for compatibility with some 3rd-party plugins.
If you have customized the template file cart/cart-items.php
from our plugin, you will have to update your copy with the new changes. Most likely you would have customized the cart items table within that template file, so you may or may not need to create a copy of the template file cart/cart-items-table.php
on your child theme.
Follow the steps below to update your copies of these template files:
cart/cart-items.php
- Open both the original template file from
fluid-checkout-pro/templates/fc-pro/cart/cart/cart-items.php
and your copy of that template file from your child theme; - Compare the two files line-by-line and make the necessary adjustments on your copy of that template file;
- Save your template file to your child theme templates folder at
your-child-theme/woocommerce/cart/cart-items.php
;
cart/cart-items-table.php
- Open the original template file from
fluid-checkout-pro/templates/fc-pro/cart/cart/cart-items-table.php
; - Create a copy of that template file to your child theme templates folder at
your-child-theme/woocommerce/cart/cart-items-table.php
; - Make the necessary adjustments with your customizations to your copy of that template file;
- Save your copy of the template file to your child theme.
Make sure to test the cart page again after updating your template files to ensure that your customizations are applying. If needed, clear the template files cache from WP Admin > WooCommerce > Status > Tools to ensure the new updated template files are being used instead of that saved to cache.
Fix filter hooks for compatibility with the plugin Checkout Field Editor PRO by Themehigh
Fix usage of filter hook fc_pro_thwcfe_{$substep_id}_substep_title
The filter hook fc_pro_thwcfe_{$substep_id}_substep_title
has been removed. If you had customized the title for any custom sub-step section created with this plugin, you can now use the filter hooks fc_substep_title_{$substep_id}
, replacing {$substep_id}
with the actual sub-step id.
For more information on this visit the documentation article Customize checkout steps.
Fix usage of filter hook fc_pro_thwcfe_custom_section_substep_hooks
The filter hook fc_pro_thwcfe_custom_section_substep_hooks
was used to allow developers to change the arguments used to define in which position to display the customer sections. This filter has been renamed to fc_pro_thwcfe_custom_section_substep_position_args
and expects a different data structure.
Previously this hook expected the following data structure:
// Define substep hook and priority for each position
$section_step_hooks = array(
'position_id' => array(
'hook' => 'hook_name',
'callback' => 'callable_function',
'priority' => $priority_value
),
);
The correct and expected data structure for the new hook is now the following:
// Define substep position args
$substep_position_args = array(
'position_id' => array(
'step_id' => $step_id,
'priority' => $priority_value
),
);
If you were using this filter hook previously to updating Fluid Checkout PRO to version 3.0+, you will need to change to use the new filter name and structure for your customizations to continue to apply.
Applying changes to your customizations
If need to make any changes to your customizations, you will have to apply these changes at the same time as when updating the plugins and add-ons to these newer versions.
Ideally, you would update the plugins and make these changes first on a test/staging copy of your website so that your live/production site is not affected in case any problem happens.
Need support?
While we cannot fix the customizations on your website for you as per our support scope, we can certainly help you with any questions you may have regarding these changes.
If you encounter any issue while updating to these new versions of our plugins, please open a support ticket and we will do what we can to ensure a smooth transition.
Compatibility with plugins Delivery & Pickup Date Time for WooCommerce (free and PRO) by CodeRockz moved to the Fluid Checkout PRO
Why is this compatibility being removed from Lite?
With Fluid Checkout Lite 4.0+, we removed the compatibility and support for the integration with the plugins Delivery & Pickup Date Time for WooCommerce (free and PRO) by CodeRockz as part of the free plugin offer. The integration with these plugins will continue to be fully supported with Fluid Checkout PRO.
While it is unusual to have compatibility be removed, this integration in particular demands a much higher level of maintenance compared to other integrations and compatibility available with Fluid Checkout Lite, and we unfortunately unable to devote so much time for this as part of our free plugin.
With this change, compatibility with all plugins that offer the features for Delivery Date will only be available with Fluid Checkout PRO, as already mentioned on our homepage in the list of compatibilities available: Integration with supported order delivery date plugins (PRO).
When one of the CodeRockz plugins is detected and neither Fluid Checkout PRO 3.0+ or the Legacy Integrations plugin is also detected, an admin notice will be shown:

Will I lose this compatibility after updating to Fluid Checkout Lite 4.0+?
No, and Yes.
If you already have Fluid Checkout PRO, you are covered. You will only need to also update Fluid Checkout PRO to version 3.0+ and everything should be as it was before.
Otherwise, if you are using only Fluid Checkout Lite, you can keep using the existing integration indefinitely by installing the Legacy Feature plugin we are making available for a limited time (see below). However, we recommend you upgrade to Fluid Checkout PRO to continue getting support and updates for this integration after the grace period is elapsed.
Installing the legacy integrations plugin to keep using the moved integrations
Fluid Checkout for WooCommerce – Legacy Integrations
The plugin is ready for use on Live sites. Although, as with any new plugins and updates, you should test it on a Staging/Test site before making changes to the Live site.
- Download the extra plugin Fluid Checkout for WooCommerce – Legacy Integrations and install it on your website.
- You will not see any changes to functionality or settings yet.
- An admin notice will be displayed telling you that Fluid Checkout Lite 4.0+ is needed for Fluid Checkout for WooCommerce – Legacy Integrations.
- Once Fluid Checkout Lite is updated to version 4.0+ or greater, the legacy integrations will keep working smoothly.
- The admin notice will be removed and the plugins list should look like this:
- That is all 🙂
Access to download the legacy integrations plugin will end on February 20th, 2025
Fluid Checkout PRO vs the Legacy Integrations plugin
What happens when I upgrade to Fluid Checkout PRO?
Once you install and activate Fluid Checkout PRO on your website, the plugin Fluid Checkout Legacy Integrations will be disabled automatically, and an admin notice will appear telling you that you can deactivate and delete the extra plugin:
