我正在使用自定义产品,客户可以在其中输入将添加到购物车的自定义文字。 根据文本的大小,将设置不同的价格,逻辑完成,我可以在产品对象中看到新的价格。
似乎我可以用新价格更改产品对象,但当我执行$ 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');
答案 0 :(得分:0)
您尝试呼叫的功能不存在。这是你需要的功能。
$product = wc_setup_product_data( $product_id );
不确定你在哪里提出这些功能。我也找不到这个功能?
$woocommerce->clear_product_transients( $product_id );