使用AJAX,Woocommerce Wordpress更改产品价格

时间:2016-02-18 20:11:15

标签: php ajax wordpress woocommerce

我正在使用自定义产品,客户可以在其中输入将添加到购物车的自定义文字。 根据文本的大小,将设置不同的价格,逻辑完成,我可以在产品对象中看到新的价格。

似乎我可以用新价格更改产品对象,但当我执行$ woocommerce-> setup_product_data($ product_id)时,我从admin-ajax.php获得状态500。

我找到了几个主题,但似乎没有一个主题适用于我的情况。 我无法用新价格更新购物车。

这是我在functions.php中的ajax函数:

// Adjust new price
function applyNewPrice() {
    global $woocommerce;

    // From JS
    $product_id = (int) $_POST['id']; 
    // From JS
    $price = (float) $_POST['price'];
    $product_data = get_post($product_id);
    // Code returning status 500 here...
    $product = $woocommerce->setup_product_data($product_data); 
    $product->set_price($price);

    update_post_meta($product_id,'_price',$price);
    update_post_meta($product_id,'_regular_price',$price);

    $woocommerce->clear_product_transients( $product_id );

}

add_action('wp_ajax_applyNewPrice', 'applyNewPrice');
add_action('wp_ajax_nopriv_applyNewPrice', 'applyNewPrice');

1 个答案:

答案 0 :(得分:0)

您尝试呼叫的功能不存在。这是你需要的功能。

$product = wc_setup_product_data( $product_id );

不确定你在哪里提出这些功能。我也找不到这个功能?

$woocommerce->clear_product_transients( $product_id );