首页 > 解决方案 > 如何从 ajax 调用中的 ID 获取变体的价格

问题描述

我正在尝试从 ajax 调用中的 ID 获取变体的价格。我不明白为什么 wc_get_product() 返回一个空对象。

这是我的 ajax 调用的 Javascript 代码:

$(document).on('change', '#product-info select', function() {
    var variation_id = $(this).find(':selected').val(),
      variation_name = $(this).find(':selected').text(),
      data = {
        action: 'woocommerce_ajax_quantity_change',
        variationid: variation_id
      };

    $.ajax({
      type: 'post',
      url: wc_add_to_cart_params.ajax_url,
      data: data,
      success: function(response) {
        console.log(response);
      }
    });
});

这是我的 PHP 文件,其中 $variation 返回一个空数组:

function woocommerce_ajax_quantity_change() {
    $variationid = empty($_POST['variationid']) ? 0 : absint($_POST['variationid']);
    $variation = wc_get_product($variationid);
    echo wp_send_json($variation);
    wp_die();
}

$variationid 很好,并返回正确的变体 ID(已检查)。

标签: phpjqueryajaxwordpresswoocommerce

解决方案


您还可以像这样根据变体 id 获得价格 -

$price = get_post_meta($variation_id, '_price', true);
echo $price;

可能可以帮助您临时修复


推荐阅读