Php 使用AJAX、WoodCommerce和Wordpress更改产品价格

Php 使用AJAX、WoodCommerce和Wordpress更改产品价格,php,ajax,wordpress,woocommerce,Php,Ajax,Wordpress,Woocommerce,我正在使用一个定制产品,客户可以在其中键入将添加到购物车的定制文本。 根据文本的大小,将设置不同的价格,逻辑完成,我可以在product对象中看到新的价格 似乎我可以用新的价格更改产品对象,但当我执行$woommerce->setup\u product\u data($product\u id)时,我从admin-ajax.php返回状态500 我发现了几个主题,但在我的案例中没有一个是有效的。 我无法用新的价格更新购物车 这是我在functions.php中的ajax函数: // Adjus

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

似乎我可以用新的价格更改产品对象,但当我执行$woommerce->setup\u product\u data($product\u 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');

您试图调用的函数不存在。这就是您需要的功能

$product = wc_setup_product_data( $product_id );
不知道你在哪里提出这些功能。我也找不到这个函数

$woocommerce->clear_product_transients( $product_id );

你是如何解决这个问题的?我也不能用
set\u price
更新价格。