我无法在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订阅插件的订阅类型产品。
答案 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'];
}
}