add_action( 'ccom_order_bump', function() {
// Settings
$product_title = 'Hoodie with Zipper';
$offer_html = '
<h2 style="color: white;">
<strong>Special offer!</strong>
</h2>
Get the Hoodie with Zipper today.
';
// Check For Preexistence
$product_post = get_page_by_title(
$product_title, OBJECT, 'product'
);
$already_in_cart = false;
if( ! WC()->cart->is_empty() ) {
foreach( WC()->cart->get_cart() as $cart_item ) {
if( $cart_item['product_id'] === $product_post->ID ) {
$already_in_cart = true;
}
}
}
if( $already_in_cart ) {
return;
}
// Offer Product
$product = wc_get_product( $product_post );
$options = [];
// Variable Product
if( $product->is_type( 'variable' ) ) {
$product_variations = $product->get_available_variations();
foreach( $product_variations as $i => $variation ) {
$variation_title = array_pop( $variation['attributes'] );
$options[] = sprintf(
'<label><input name="add-to-cart" type="radio" value="%d" /> %s $%s</label>',
$variation['variation_id'],
$i === 0 ? ' checked="checked"' : '',
$variation_title,
number_format( $variation['display_price'], 2 )
);
}
// Non-Variable Product
} else {
$options[] = sprintf(
'<input type="hidden" name="add-to-cart" value="%d" /> $%s',
$product->get_id(),
number_format( $product->get_price(), 2 )
);
}
// Output
printf( '
<div class="woocommerce-info">
<form action="">
%s %s
<button class="button" style="%s">Add to Cart</button>
</form>
</div>
', $offer_html, implode( ' ', $options ),
'background-color: rgba(0, 0, 0, 0.15); padding: 0.5em 1em;'
);
} );
add_action( 'woocommerce_before_cart', function() {
do_action( 'ccom_order_bump' );
} );
add_action( 'woocommerce_before_checkout_form', function() {
do_action( 'ccom_order_bump' );
} );
Cart and Checkout order bump up-sell
Places a special offer onto Cart and Checkout pages when product in offer isn’t already in the cart. Supports simple and variable product types.
This is a basic version of several official extensions you might consider: Product Recommendations, Cart Add-ons, Cart Notices, WooCommerce Checkout Add-Ons.
This is one of three useful up-sell features available in my plugin Up-Sell Trio for WooCommerce.
How to use
- Log into a staging, development, or locally hosted clone of your site
- Install and activate Code Snippets
- WP Admin > Snippets > Add New
- Copy and paste the code from the Description tab above
- Check to ensure formatting came over properly and no syntax errors show up in the editor
- Customize the code as desired
- Add a meaningful title
- Select whether to run on front-end or back-end (or both)
- Click “Save and Activate”
- Test your site to ensure it works
- Disable if any problems, or recover
- Repeat for live environment
License
All code snippets are licensed GPLv2 (or later) matching WordPress licensing.
Disclaimer of warranty:
Except when otherwise stated in writing the copyright holders and/or other parties provide the program as-is without warranty of any kind, either expressed or implied, including, but not limited to, the implied warranties of merchantability and fitness for a particular purpose.
Support
- Describe the issue and what you’ve observed.
- Describe your expected outcome(s).
- List steps to reproduce the issue.
- Optionally provide screen-shot or video URLs.
