改变WooCommerce中特定产品类型的购物车内容?

时间:2016-03-22 19:24:26

标签: php wordpress woocommerce

在这个问题WooCommerce: Add product to cart with price override?中,我们可以改变购物车中所有产品的价格。

我需要的是仅更改名为“拍卖”的特定自定义类型的产品,而不是更改其余产品。

这是我使用的代码::

> CREATE TABLE Table1(id INT NOT NULL AUTO_INCREMENT, code VARCHAR(10),
> PRIMARY KEY(id)) ENGINE=SPIDER ENGINE=spider 
> COMMENT='wrapper "mysql",srv "server1"';

我试过了::

add_action( 'woocommerce_before_calculate_totals', 'add_custom_price' );

function add_custom_price( $cart_object ) {
    $custom_price = 10; // This will be your custome price  
    foreach ( $cart_object->cart_contents as $key => $value ) {
        $value['data']->price = $custom_price;
    }
}

1 个答案:

答案 0 :(得分:0)

如果我记得正确,$value['data']是产品对象。

所以你应该可以使用is_type()方法:

if( $value['data']->is_type( 'simple' ) ){
  // a simple product
} elseif( $value['data']->is_type( 'variable' ) ){
  // a variable product
}

不要忘记,您始终可以使用var_dump( $cart_object )或更好error_log( json_encode( $cart_object ) )(需要启用WP_DEBUG_LOG)来查看变量中的内容。