Skip to content

Instantly share code, notes, and snippets.

@Preciousomonze
Last active October 26, 2021 11:55
Show Gist options
  • Save Preciousomonze/b2832b81f6423d0fcc66e44779e5e506 to your computer and use it in GitHub Desktop.
Save Preciousomonze/b2832b81f6423d0fcc66e44779e5e506 to your computer and use it in GitHub Desktop.
Display cross sells of a particular product in a cart. Add the file to your child theme: 'woocommerce/cart/' folder.
<?php
/**
* Cross-sells
*
* This template can be overridden by copying it to yourtheme/woocommerce/cart/cross-sells.php.
*
* HOWEVER, on occasion WooCommerce will need to update template files and you
* (the theme developer) will need to copy the new files to your theme to
* maintain compatibility. We try to do this as little as possible, but it does
* happen. When this occurs the version of the template file will be bumped and
* the readme will list any important changes.
*
* @see https://docs.woocommerce.com/document/template-structure/
* @package WooCommerce/Templates
* @version 3.0.0
*/
defined( 'ABSPATH' ) || exit;
$product_id = 345; // Insert your own product id.
$cross_sells = get_post_meta( $product_id, '_crosssell_ids', true );
if ( $cross_sells ) : ?>
<div class="cross-sells">
<h2><?php esc_html_e( 'You may be interested in&hellip;', 'woocommerce' ); ?></h2>
<?php woocommerce_product_loop_start(); ?>
<?php foreach ( $cross_sells as $cross_sell ) : ?>
<?php
$post_object = get_post( $cross_sell );
setup_postdata( $GLOBALS['post'] =& $post_object ); // phpcs:ignore WordPress.WP.GlobalVariablesOverride.OverrideProhibited, Squiz.PHP.DisallowMultipleAssignments.Found
wc_get_template_part( 'content', 'product' );
?>
<?php endforeach; ?>
<?php woocommerce_product_loop_end(); ?>
</div>
<?php
endif;
wp_reset_postdata();
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment