我想根据产品的运输类别在产品页面上显示一条消息 - 如果运输类别为“X”,则不显示短代码,否则显示它。 我们只设置了重型家具的本地提货,并且不希望这些物品显示我们 48-72 小时运送时间的常规信息。
我发现这篇关于同一主题的文章,但我无法弄清楚最终的代码必须是怎样的,因为我不是开发人员:wooCommerce - 从产品页面获取运输类别
任何帮助将不胜感激,提前致谢!
来自其他帖子的代码:
$Set_shipping_class = 'furniture-oversized';
if ( $Set_shipping_class === WC_Product::get_shipping_class()); {
add_action( 'woocommerce_before_add_to_cart_form', ‘display_Shortcode’, 100 );
function display_Shortcode() {
echo do_shortcode('[phoeniixx-pincode-check]');
}
}
第二次尝试:
$Set_shipping_class = 'furniture-oversized';
$_product = wc_get_product();
$shipclass = $_product->get_shipping_class(); //this line kills the site
最终解决方案:
$_product = wc_get_product();
$shipclass = $_product->get_shipping_class();
是正确的方法,但是您需要将产品的帖子 ID 传递给 wc_get_product(),因此第一行实际上应该是:
$_product = wc_get_product( $post_id );
不要忘记先设置 $post_id 变量。
我不知道如何将所有代码放在一起。
尝试以下方法(其中
IF
语句需要位于函数内部):
add_action( 'woocommerce_before_add_to_cart_form', 'display_shortcode_before_add_to_cart_form', 100 );
function display_shortcode_before_add_to_cart_form() {
global $product;
if ( 'furniture-oversized' === $product->get_shipping_class() ) {
echo do_shortcode('[my_custom_shortcode]');
}
}
代码位于子主题的functions.php 文件中(或插件中)。应该可以。