我正在尝试构建一个简单的插件,将一个简单的AJAX按钮插入到WooCommerce产品页面中。按下按钮后,我想将当前的产品数据返回给我的Javascript代码,以便在前端处理。
这是在单击时执行的回调函数。
我得到错误:wp/admin-ajax.php 500 (内部服务器错误)
function myfunction() {
//gets executed;
global $product;
$name = $product->get_name();
echo $name;
wp_die();
}在debug.log中,很明显全局$product变量不可用:PHP致命错误: Uncaught $product:调用null上的成员函数get_name()。
备注:
global $product; $product->get_name()工作在其他未通过AJAX调用的php函数中。myfunction(),并在JQuery请求中正确处理了响应。如果我回一个硬编码的‘字符串’代替,它工作!以前有人遇到过这种情况并找到了解决办法吗?
发布于 2018-04-07 07:05:07
您需要从ajax请求中传递产品id。然后,在php回调函数中,可以使用woocommerce函数从该id中获取产品对象。
/ /Get $product对象来自产品ID $product = wc_get_product( $product_id );
https://stackoverflow.com/questions/49611666
复制相似问题