Skip to content

Instantly share code, notes, and snippets.

@mikejolley
Last active September 13, 2021 20:45
Show Gist options
  • Star 3 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save mikejolley/cd67b0baf1c3767bb29f76471fea120b to your computer and use it in GitHub Desktop.
Save mikejolley/cd67b0baf1c3767bb29f76471fea120b to your computer and use it in GitHub Desktop.
WooCommerce - Add all upsells of a product to the cart via custom link
<?php // Do not include this if already open!
/**
* Code goes in theme functions.php.
* Product must have upsells, and this works with simple products only.
* Example link: yoursite.com?add-upsells-to-cart=X, X being your product ID.
*/
add_action( 'wp_loaded', 'bulk_upsell_add_to_cart_action', 20 );
function bulk_upsell_add_to_cart_action() {
if ( ! empty( $_GET['add-upsells-to-cart'] ) ) {
$product_id = absint( $_GET['add-upsells-to-cart'] );
$product = wc_get_product( $product_id );
if ( $product ) {
$upsell_ids = $product->get_upsells();
if ( $upsell_ids ) {
$count = 0;
foreach ( $upsell_ids as $upsell_id ) {
if ( WC()->cart->add_to_cart( $upsell_id ) ) {
$count ++;
}
}
wc_add_notice( sprintf( _n( 'Added %d item to the cart', 'Added %d items to the cart', $count ), $count ) );
}
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment