Problem:
The user wanted to display a view of products according to the ones which are currently in the cart on the checkout page. Although not possible using native Toolset tools, custom PHP code can be used to achieve this.
Solution:
- Utilize WooCommerce hooks to get the list of products currently in the cart.
- Use the following custom PHP code and add it to your website:
function wpc_elementor_shortcode( $atts ) { // Get full cart object $items = WC()->cart->get_cart(); // Initialize array to store product IDs $product_ids = array(); // Loop through cart items foreach( $items as $item => $values ) { // Load product object $product = wc_get_product( $values['data']->get_id() ); // Access product data using product object $product_id = $product->get_id(); // Add product ID to array $product_ids[] = $product_id; } // Join product IDs into comma-separated string $product_ids_string = implode( ', ', $product_ids ); // Output comma-separated list of product IDs echo $product_ids_string; } add_shortcode( 'my_elementor_php_output', 'wpc_elementor_shortcode');
- Use the shortcode [my_elementor_php_output] to output the comma-separated list of product IDs currently in the cart.
Relevant Documentation:
WooCommerce - Get Products in Cart: https://wpdavies.dev/woocommerce-get-products-in-cart/
Toolset - Adding Custom Code: https://toolset.com/documentation/programmer-reference/adding-custom-code/using-toolset-to-add-custom-code/
PHP Implode function: https://www.php.net/manual/en/function.implode.php
This is the technical support forum for Toolset - a suite of plugins for developing WordPress sites without writing PHP.
Everyone can read this forum, but only Toolset clients can post in it. Toolset support works 6 days per week, 19 hours per day.
This topic contains 4 replies, has 2 voices.
Last updated by 1 year, 8 months ago.
Assisted by: Christopher Amirian.