WooCommerce带有定制价格的Add_to_Cart()

时间:2017-11-02 作者:marvinski03

我将此方法与ajax调用结合使用,以将产品从configurator设置到我的购物车:

$woocommerce->购物车->将\\u添加到\\u购物车($p\\u id,$p\\u数量,$p\\u var\\u id,$p\\u var\\u名称);

如何使用此方法设置计算的自定义价格?有可能吗?

您好,

马文

1 个回复
SO网友:AHSAN KHAN

目前,没有直接的方法将自定义价格添加到通过函数添加的产品中$woocommerce->cart->add_to_cart (Documentation) 但我们有一种绕过的方式,我在下面的代码中解释

global $woocommerce;
$custom_price = 1000;
// Cart item data to send & save in order
$cart_item_data = array(\'custom_price\' => $custom_price);   
// woocommerce function to add product into cart check its documentation also 
// what we need here is only $product_id & $cart_item_data other can be default.
$woocommerce->cart->add_to_cart( $product_id, $quantity, $variation_id, $variation, $cart_item_data );
// Calculate totals
$woocommerce->cart->calculate_totals();
// Save cart to session
$woocommerce->cart->set_session();
// Maybe set cart cookies
$woocommerce->cart->maybe_set_cart_cookies();
在函数文件中,可以放置以下代码

 function woocommerce_custom_price_to_cart_item( $cart_object ) {  
    if( !WC()->session->__isset( "reload_checkout" )) {
        foreach ( $cart_object->cart_contents as $key => $value ) {
            if( isset( $value["custom_price"] ) ) {
                //for woocommerce version lower than 3
                //$value[\'data\']->price = $value["custom_price"];
                //for woocommerce version +3
                $value[\'data\']->set_price($value["custom_price"]);
            }
        }  
    }  
}
add_action( \'woocommerce_before_calculate_totals\', \'woocommerce_custom_price_to_cart_item\', 99 );
你可以走了

结束

相关推荐

使用AJAX返回空数组的WP_QUERY

在广泛阅读了这篇文章之后,我遇到了一个难题,所以我想我应该在这里继续问下去。我正在构建一个AJAX调用,它将运行WP\\u查询并返回一系列具有特定标记的帖子。该标记由用户单击ul中的项目来指定,然后将适当的标记作为“数据段塞”传递给AJAX调用。我已经构建了JS和PHP,但我的AJAX调用一直返回一个空数组,尽管它记录了一个“成功”。我已经仔细检查了正确的slug是否传递到WP\\u查询的参数中,以及正确的脚本是否已排队。查询似乎没有返回任何内容。然而,当我在AJAX之外运行相同的查询时,使用硬编码的参数