Php Woocommerce set_price在Woocommerce_中不起作用,而在Woocommerce_calculate_totals钩子[自定义插件]

Php Woocommerce set_price在Woocommerce_中不起作用,而在Woocommerce_calculate_totals钩子[自定义插件],php,wordpress,woocommerce,Php,Wordpress,Woocommerce,我试图将我的自定义批发价格添加到产品中。所以我用手工编码创建了定制的商店页面。 当我试图设定批发价格(自定义价格)时,它总是应用原始价格 在计算总计之前,我在woocommerce\u中放了一个日志,它起作用了,但价格没有得到应用,而是与产品的原始价格一起提供 添加到购物车API: add_action( 'rest_api_init', function () { register_rest_route( 'my_plugin/v1/', '/cart/add', array(

我试图将我的自定义批发价格添加到产品中。所以我用手工编码创建了定制的商店页面。 当我试图设定批发价格(自定义价格)时,它总是应用原始价格

在计算总计之前,我在
woocommerce\u中放了一个日志,它起作用了,但价格没有得到应用,而是与产品的原始价格一起提供

添加到购物车API:

add_action( 'rest_api_init', function () {
    register_rest_route( 'my_plugin/v1/', '/cart/add', array(
        'methods' => WP_REST_Server::EDITABLE,
        'args'=>["operation"],
        'callback' => 'my_plugin_cart_operations',
    ));
    register_rest_route( 'my_plugin/v1/', '/cart/get', array(
        'methods' => WP_REST_Server::READABLE,
        'callback' => 'my_plugin_get_cart',
    ));
});

function euca_cart_operations(){
    defined( 'WC_ABSPATH' ) || exit;

    include_once WC_ABSPATH . 'includes/wc-cart-functions.php';
    include_once WC_ABSPATH . 'includes/class-wc-cart.php';

    if ( is_null( WC()->cart ) ) {
        wc_load_cart();
    }
    $data=$_REQUEST;
    $product_id=$data['product_id']; //here product is variation id because it's coming from wholesale page
    $quantity=$data['quantity'];
    $variation_id=$data['variation_id'];
    return WC()->cart->add_to_cart( $product_id,$quantity,$variation_id )
}
钩住

add_action( 'woocommerce_before_calculate_totals', 'my_plugin_test', 20,1);

function my_plugin_test($cart){
    if ( did_action( 'woocommerce_before_calculate_totals' ) >= 2 )
        return;

    // Loop through cart items
    foreach ( $cart->get_cart() as $item ) {
        $wholesale=get_post_meta( $value['data']->variation_id, 'wholesale_customer_wholesale_price', true ); //I'm getting this too
        $txt = "Mine Product-->".$item ['data']->id ."---> Price :".$wholesale;
        file_put_contents('logs.txt', $txt.PHP_EOL , FILE_APPEND | LOCK_EX)
        $item['data']->set_price( 40 ); //custom price
    }
}

您的代码中还有一些其他错误,如:
$value['data']->variation\u id
应替换为
$item['data']->get\u variation\u id()
,以及
$item['data']->id
应替换为
$item['data']->get\u id()
。@LoicTheAztec我甚至试图给出静态价格。在我的评论中,我只是指出了你代码中的一些错误,但是正如你所看到的,我没有回答这个问题…