我正在写一个插件,我需要在上面使用 ajax。我尝试使用 admin ajax 并且它可以工作,但是当我使用它时,我可以将 var 存储在我的班级中。
示例:我的课就像
class Create_order{
public $product_order = array();
}
我的方法在构造函数中
public function __construct() {
add_action('wp_ajax_add_products_order', array(
$this,
'add_products_order'
));
add_action('wp_ajax_nopriv_add_products_order', array(
$this,
'add_products_order'
));
add_action('wp_ajax_calcul_total_order', array(
$this,
'calcul_total_order'
));
add_action('wp_ajax_nopriv_calcul_total_order', array(
$this,
'calcul_total_order'
));
}
现在我将在我的数组中添加产品,例如:
public function add_product_order(){
if (isset($_POST['id'])){
$product = wc_get_product($_POST['id']));
$this->product_order[$product->id] = $product->name;
echo json_encode($this->product_order[$product->id]);
die();
}
}
当我使用管理员 ajax 时,问题就在这里,我不能使用 $this。总是空的...
如果我不使用 wordpress 中的 admin ajax,那效果很好。问题是当我不使用管理 ajax 时,我无法使用 woocommerce 功能。
示例 wc_get_product 未定义。
我的阿贾克斯
$.ajax({
type: "POST",
dateType: "json",
url: '<?php echo admin_url( 'admin-ajax.php' ); ?>',
data: "action=add_products_order&id=" + produit_id,
success: function(html) {
console.log(html);
var json = $.parseJSON(html);
//here what i want to do
}
});
我的问题是我想使用 Admin ajax 来获取所有 wordpress 和 woocommerce 功能,并像 wc_get_product 一样使用它并将其存储在一个变量中。
这里来自 wordpress 的 admin ajax 不关心我的类实例。
此致