当前位置: 首页 > 知识库问答 >
问题:

如何从ajax调用中的变量ID获取变量的价格

张建树
2023-03-14

我试图从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文件,其中$变体返回一个空数组:

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();
}

返回正确的变量ID(已检查)。

共有1个答案

商振
2023-03-14

你也可以得到一个价格基础上的变化id像这样-

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

也许能帮你暂时修好

 类似资料:
  • 我想从传递的几个值动态调用几个“setter”方法。每个方法都将具有字符串,int...要设置的变量类型(例如:setUserName(String userName)或setUserAge(int age))。 在我的例子中,我有一个setter方法“setUse_status(int use_stats)”,我无法配置getDeclaredMethod方法工作。似乎在获取方法时,classVa

  • 问题内容: 我认为我在正确的PHP和AJAX文件之间传递变量的方式不正确。 我正在通过触发PHP文件中的第二个条件来调试它。 目前,对于“ signup_process.php AJAX 我知道第二个条件正在被触发,因为我在其中放置了一个标头重定向,仅用于测试,它工作正常。 问题答案: 在将数据从php返回到ajax时很好用 json 。 现在,如果要将json数据返回给ajax,则需要将 返回数

  • 问题内容: 为什么最终控制台日志未定义?变量时间具有全局作用域,而ajax调用是异步的。 这是我的代码: 问题答案: 更改为布尔值false。 http://api.jquery.com/jQuery.ajax/ 另外,请注意,如果您需要在此处使用跨域,则将无法同步-请使用Promise。 使用Q.js在此处查看这样的示例: 演示

  • 我面临以下问题:我必须给成千上万的图形用户界面元素命名。如果它能像这样工作,那就太好了: 如果我能将元素的名称设置为“Classname.myMenuItem”,那就太好了。 是否有任何方法来获取变量的名称(变量名称ofc,而不是JMenuItem.getName())?

  • 问题内容: 我有一个简单的ajax(jQuery版本)脚本和一个非常短的php函数,它们工作正常而没有问题。当我从表单输入are中提交值时,ajax会发送并从php脚本中获取结果,在这种情况下,该ajax可以获取预定的总金额。Ajax脚本和html部分如下: 以下用作xml的php脚本也可以与上述ajax请求一起正常工作: 但是,当我将上述脚本与购物车的foreach循环结合使用时,它不起作用,并

  • 问题内容: 我正在尝试在jquery的AJAX调用中使用变量,但是它不起作用。移动变量包含不同的值。请检查以下代码: 建议在数据中使用$ move变量的任何方法。 问题答案: 它应该是