Commit e6c966c054e for woocommerce
commit e6c966c054e606de2cc1f255ce57a90ec141ad2b
Author: Luigi Teschio <gigitux@gmail.com>
Date: Fri Oct 30 10:24:10 2026 +0100
Strengthen product visibility checks in add-to-cart shortcodes (#70383)
* Strengthen product visibility checks in add-to-cart shortcodes
* Add changelog for shortcode visibility checks
* Update plugins/woocommerce/includes/class-wc-shortcodes.php
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
---------
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
diff --git a/plugins/woocommerce/changelog/fix-add-to-cart-shortcode-product-visibility b/plugins/woocommerce/changelog/fix-add-to-cart-shortcode-product-visibility
new file mode 100644
index 00000000000..8a455bb3f26
--- /dev/null
+++ b/plugins/woocommerce/changelog/fix-add-to-cart-shortcode-product-visibility
@@ -0,0 +1,4 @@
+Significance: patch
+Type: fix
+
+Apply product visibility checks before rendering add-to-cart shortcodes.
diff --git a/plugins/woocommerce/includes/class-wc-shortcodes.php b/plugins/woocommerce/includes/class-wc-shortcodes.php
index 3b20e4032d9..7210f0dfb86 100644
--- a/plugins/woocommerce/includes/class-wc-shortcodes.php
+++ b/plugins/woocommerce/includes/class-wc-shortcodes.php
@@ -342,7 +342,8 @@ class WC_Shortcodes {
$product = is_object( $product_data ) && in_array( $product_data->post_type, array( 'product', 'product_variation' ), true ) ? wc_setup_product_data( $product_data ) : false;
- if ( ! $product ) {
+ if ( ! $product || ! $product->is_viewable() ) {
+ wc_setup_product_data( $post );
return '';
}
@@ -392,7 +393,7 @@ class WC_Shortcodes {
$product = is_object( $product_data ) && in_array( $product_data->post_type, array( 'product', 'product_variation' ), true ) ? wc_setup_product_data( $product_data ) : false;
- if ( ! $product ) {
+ if ( ! $product || ! $product->is_viewable() ) {
return '';
}