为了账号安全,请及时绑定邮箱和手机立即绑定

确定 WooCommerce 中的产品类型 - 致命错误:

确定 WooCommerce 中的产品类型 - 致命错误:

PHP
慕妹3242003 2022-12-23 13:06:55
我正面临这个问题。致命错误:未捕获错误:在 null 上调用成员函数 is_type()有人会在这方面帮助我吗?这是我使用的代码。add_action( 'woocommerce_before_calculate_totals', 'sione_change_cart_item_name_and_price', 10, 1 );function sione_change_cart_item_name_and_price( $cart ) {    global $product;        // Get new items names from WC_Session    $session_data = (array) WC()->session->get( 'new_item_names' );    //$sku_data = (array) WC()->session->get( 'product_sku' );    // Loop through cart items    foreach ( $cart->get_cart() as $cart_item_key => $cart_item ) {                        if($product->is_type( 'simple' )) {            $item_names = $product->get_short_description();        } else {            $item_names = $cart_item['data']->get_name() .", ". $cart_item['data']->get_attribute('color'). "," . $cart_item['data']->get_attribute('gender') . " (Product SKU: " . $cart_item['data']->get_sku() . ")";        }        // If item name doesn't exist in WC_Session for this cart item, we do it        if( ! isset($session_data[$cart_item_key]) ) {            $session_data[$cart_item_key] = $item_names;            WC()->session->set( 'new_item_names', $session_data );        }    }}任何帮助将不胜感激。谢谢
查看完整描述

1 回答

?
慕森王

TA贡献1777条经验 获得超3个赞

您可以通过以下方式确定产品类型


function sione_change_cart_item_name_and_price( $cart ) {

    if ( is_admin() && ! defined( 'DOING_AJAX' ) )

        return;


    if ( did_action( 'woocommerce_before_calculate_totals' ) >= 2 )

        return;


    // Loop through cart items

    foreach ( $cart->get_cart() as $cart_item ) {


        // Get an instance of the WC_Product object

        $product = $cart_item['data'];


        // Get product id

        $product_id = $cart_item['product_id'];


        if( $product->is_type( 'simple' )) {

            echo 'Simple = ' . $product_id . '<br>';

        } else {

            echo 'Else = ' . $product_id . '<br>';          

        }

    }

}

add_action( 'woocommerce_before_calculate_totals', 'sione_change_cart_item_name_and_price', 10, 1 );


查看完整回答
反对 回复 2022-12-23
  • 1 回答
  • 0 关注
  • 54 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信