根据运输类别在 WooCommerce 产品页面中显示短代码

问题描述 投票:0回答:1

我想根据产品的运输类别在产品页面上显示一条消息 - 如果运输类别为“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 变量。

我不知道如何将所有代码放在一起。

php wordpress woocommerce product shortcode
1个回答
0
投票

尝试以下方法(其中

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 文件中(或插件中)。应该可以。

© www.soinside.com 2019 - 2024. All rights reserved.