如何在 WooCommerce 单个产品页面上有条件地使用简码
How to conditionally use a shortcode on WooCommerce single product pages
如果库存为空,如何在 WooCommerce 单个产品页面上有条件地隐藏简码?
例如,如果产品缺货:
- 短代码
[scale-prices]
应该消失
- (绿色交通灯图片变为黄色交通灯图片)
您可以使用任何这些单一产品页面挂钩并添加您需要的条件。
https://www.businessbloomer.com/woocommerce-visual-hook-guide-single-product-page/
就像您可以使用 woocommerce_before_single_product
并检查产品可用性,然后根据该结果您可以使用 add_shortcode
、remove_shortcode
。如果需要,您还可以使用 wp_footer
脚本添加脚本。
您可以进一步分享 details/scenario 以获得确切的解决方案。
你的问题很宽泛。但是如果产品(或变体)缺货,您可以将 CSS 正文 class 添加到产品页面。然后您可以使用它来操作您的页面,例如通过 CSS 或 JavaScript.
以下代码片段将为简单的缺货产品添加 out-of-stock
作为正文 class,并为缺货的每个变体添加 {variation-id}-out-of-stock
正文 class缺货:
add_filter( 'body_class', 'add_class_if_product_is_out_of_stock', 10, 1 );
function add_class_if_product_is_out_of_stock( $classes ) {
if ( is_product() ) {
global $post;
if ( $product = wc_get_product( $post->ID ) ) {
if ( $product->is_type( 'variable' ) ) {
$children = $product->get_children();
foreach ( $children as $child_id ) {
if ( $product = wc_get_product( $child_id ) ) {
if ( $product->is_in_stock() == false ) {
$classes[] = sprintf( '%s-out-of-stock', $child_id );
}
}
}
} elseif ( $product->is_in_stock() == false ) {
$classes[] = 'out-of-stock';
}
}
}
return $classes;
}
应将此代码段添加到您的子主题的 functions.php 中,或通过 Code Snippets 等插件添加。
如果库存为空,如何在 WooCommerce 单个产品页面上有条件地隐藏简码?
例如,如果产品缺货:
- 短代码
[scale-prices]
应该消失 - (绿色交通灯图片变为黄色交通灯图片)
您可以使用任何这些单一产品页面挂钩并添加您需要的条件。
https://www.businessbloomer.com/woocommerce-visual-hook-guide-single-product-page/
就像您可以使用 woocommerce_before_single_product
并检查产品可用性,然后根据该结果您可以使用 add_shortcode
、remove_shortcode
。如果需要,您还可以使用 wp_footer
脚本添加脚本。
您可以进一步分享 details/scenario 以获得确切的解决方案。
你的问题很宽泛。但是如果产品(或变体)缺货,您可以将 CSS 正文 class 添加到产品页面。然后您可以使用它来操作您的页面,例如通过 CSS 或 JavaScript.
以下代码片段将为简单的缺货产品添加 out-of-stock
作为正文 class,并为缺货的每个变体添加 {variation-id}-out-of-stock
正文 class缺货:
add_filter( 'body_class', 'add_class_if_product_is_out_of_stock', 10, 1 );
function add_class_if_product_is_out_of_stock( $classes ) {
if ( is_product() ) {
global $post;
if ( $product = wc_get_product( $post->ID ) ) {
if ( $product->is_type( 'variable' ) ) {
$children = $product->get_children();
foreach ( $children as $child_id ) {
if ( $product = wc_get_product( $child_id ) ) {
if ( $product->is_in_stock() == false ) {
$classes[] = sprintf( '%s-out-of-stock', $child_id );
}
}
}
} elseif ( $product->is_in_stock() == false ) {
$classes[] = 'out-of-stock';
}
}
}
return $classes;
}
应将此代码段添加到您的子主题的 functions.php 中,或通过 Code Snippets 等插件添加。