Skip to content

Instantly share code, notes, and snippets.

Embed
What would you like to do?
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
You can’t perform that action at this time.