add_action( 'woocommerce_single_product_summary', function() {
// Out Of Stock
global $product;
if( $product && ! $product->is_in_stock() ) {
// Get Upsells
$upsells = $product->get_upsells();
if( $upsells ) {
// Yield To Parent Product IDs
foreach( $upsells as &$product_id_loop ) {
$product_loop = wc_get_product( $product_id_loop );
if( ! $product_loop ) {
continue;
}
if( $product_loop->is_type( 'variation' ) ) {
$product_id_loop = $product_loop->get_parent_id();
}
}
// Show Upsells Template
echo '
<p style="font-size: 21px;">
Currently
<strong>out of stock</strong> –
Consider these alternatives:
</p>
';
echo do_shortcode(
sprintf(
'[products limit="2" columns="2" ids="%s"]',
implode( ',', $upsells )
)
);
return;
}
}
} );
Out of stock display up-sells
For out of stock show any up-sells above short description and add-to-cart.
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.
- Email to [email protected]
