【发布时间】:2020-02-21 15:56:33
【问题描述】:
我正在使用 WooCommerce 插件基于角色的定价来根据用户角色获取价格变化。
当我调用函数来获取产品时,过滤器会正确应用,但是当我通过 ajax 调用函数时,它总是给出默认价格值。
function get_products_from_category($quantity=12,$page=1,$cat=[]){
$desiredPost = queryToGetProductsAccordingTofilters($quantity,$page,$cat);
$list = [];
foreach ($desiredPost as $key => $value) {
$myproduct = wc_get_product($value->ID);
$list[] = [
(...)
'price' => $myproduct->get_price().get_woocommerce_currency_symbol(),
];
}
return $list;
}
如果我在存档产品、页眉、页脚中正常调用该函数,则始终使用过滤器价格,通过 ajax 返回正常值。
已经尝试在函数内部强制加载插件
require_once WP_PLUGIN_DIR . '/role-based-pricing-for-woocommerce/addify_role_based_pricing.php';
函数被调用:
add_action('wp_ajax_my_getshopproducts', 'my_getshopproducts'); add_action('wp_ajax_nopriv_my_getshopproducts', 'my_getshopproducts'); function my_getshopproducts(){
//get values from POST, $quantity,$page,$cat
$values = get_products_from_category($quantity,$page,$cat);
echo $json_encode($values);
}
再次,如果我打电话给
get_products_from_category($quantity,$page,$cat)
直接给出正确的价格,而不是来自 ajax 调用(正在应用 add_filter)。
检查了插件是否已加载但找不到发生这种情况的原因,我猜由于某种原因未应用过滤器?
【问题讨论】:
标签: php ajax wordpress woocommerce