WooCommerce获取内部woocommerce_cart_calculate_fees的产品ID过滤器

时间:2020-08-20 12:30:05

标签: php wordpress woocommerce

我无法在woocommerce_cart_calculate_fees过滤器中获取产品ID,我假设我使用的语法是错误的,因为当我对整个购物车对象var_dump()可以看到产品ID时。

这是我的代码:

add_filter( 'woocommerce_cart_calculate_fees', 'add_administration_fees', 10, 1 );

function add_administration_fees( $cart ) {
    // var_dump($cart);

    foreach ($cart as $item) {
        echo $item['product_id'];
    }
}

如果我也可以不用foreach循环来做到这一点,那将非常好,因为我要做到这一点,因此您一次只能将一个产品放入购物车中。如果相关,此产品也是使用WooCommerce订阅插件的订阅类型产品。

1 个答案:

答案 0 :(得分:0)

您将必须从$cart对象获取购物车内容(项目),可以使用WooCommerce getter函数get_cart_contentents()为此对象。因此您的代码将如下所示:

add_filter( 'woocommerce_cart_calculate_fees', 'add_administration_fees', 10, 1 );
function add_administration_fees( $cart ) {
    foreach ( $cart->get_cart_contents() as $item ) {
        echo $item['product_id'];
    }
}