【问题标题】:Change product price dynamically in WooCommerce在 WooCommerce 中动态更改产品价格
【发布时间】:2018-07-09 03:28:25
【问题描述】:

我正在尝试在 WooCommerce 上动态更改 WooCommerce 价格,已经尝试了此处发布的各种解决方案,但没有人适合我的情况。

这是一个例子,我有一个调用receive_order_ajax_request 函数的ajax 函数,将产品添加到购物车中,然后我调用update_vehicle_price 来更新产品的价格。但是所有产品都保持相同的价格。有人可以帮帮我吗?

class WhollOrder {

    public function __construct() {
        add_action( 'wp_ajax_nopriv_receive_order_ajax_request', array( $this, 'receive_order_ajax_request' ) );

        add_action( 'wp_ajax_receive_order_ajax_request', array( $this, 'receive_order_ajax_request' ) );
    }


    public function receive_order_ajax_request() {
        global $woocommerce;

        $booking_details = $_POST['booking_details'];

        if ( isset( $booking_details ) && ! empty( $booking_details ) ) {
            foreach ( $booking_details['vehicles'] as $vehicle ) {
                $woocommerce->cart->add_to_cart( $vehicle['product_id'], (int) $vehicle['product_qty'] );
            }

    $this->update_vehicle_price( $booking_details['vehicles'] );
    } else {
    wp_send_json_error(
    array(
    'message' => 'Preencha todos os campos'
    )
        );
        }

        wp_die();
    }

    private function update_vehicle_price( $vehicles ) {
        global $woocommerce;

        foreach ( WC()->cart->get_cart() as $key => $cart_item ) {
            foreach ( $vehicles as $vehicle ) {
                if ( $vehicle['product_id'] == $cart_item['product_id'] ) {
                    WC()->cart->get_cart()[$key]['data']->set_price( 1000.00 );
                }
            }
        }

    }
}

new WhollOrder();

这不是重复的,因为我编码的方式无法使用其他问题的答案。

【问题讨论】:

  • @LoicTheAztec 这不是重复的,因为我正在尝试做与其他问题不同的事情,只需查看我的代码并与它们进行比较,我没有使用挂钩来更改价格.
  • 抱歉,您的代码不完整,所以没有人能真正理解您做错了什么……请记住,“寻求调试帮助的问题(“为什么这段代码不起作用?”)必须包括所需的行为、特定问题或错误以及在问题本身中重现它所需的最短代码。使用set_price()方法更改购物车项目价格只能在@中完成987654325@.

标签: php ajax wordpress woocommerce hook-woocommerce


【解决方案1】:

是的,伙计,我来过这里。进入结帐页面后,价格会重新加载。

你需要使用这个钩子来设置它:woocommerce_checkout_create_order_line_item

Change cart item prices in WooCommerce version 3.0

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-04-06
    • 2022-07-01
    • 1970-01-01
    • 2018-10-13
    • 2019-03-29
    • 2016-05-31
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多