wordpress 中的 Ajax 调用不适用于前端站点的订阅者用户
Posted
技术标签:
【中文标题】wordpress 中的 Ajax 调用不适用于前端站点的订阅者用户【英文标题】:Ajax call in wordpress not working for subscriber user in front site 【发布时间】:2014-10-06 06:13:07 【问题描述】:我有简单的 wordpress 表单,可以使用 Ajax 在 wordpress 的自定义表中添加数据
我的 jquery 代码(Ajax 代码)
jQuery.ajax(ajax_object.ajax_url,
type: "POST",
data: data,
cache: false,
success: function (response)
alert(response);
,
error: function (error)
if (typeof console === "object")
console.log(error);
,
complete: function ()
);
我的php代码保存数据
if(!class_exists('bookly_appo_Ajax'))
class bookly_appo_Ajax
public function __construct()
add_action('init', array(&$this, 'init'));
public function init()
add_action( 'wp_enqueue_scripts', 'enqueue_ajax_booklyapp' );
function enqueue_ajax_booklyapp($hook)
wp_enqueue_script('ajax-script-booklyapp', plugins_url( '/ajax.js?v='.rand(), __FILE__ ), array('jquery'));
wp_localize_script('ajax-script-booklyapp', 'ajax_object',
array(
'ajax_url' => admin_url('admin-ajax.php')
)
);
add_action('wp_ajax_add_category_bookly', 'add_category_bookly_callback');
add_action('wp_ajax_nopriv_add_category_bookly', 'add_category_bookly_callback');
function add_category_bookly_callback()
$storeid=$_REQUEST['storeid'];
$rows = $wpdb->insert(
$table_category, array(
'store_id' => $storeid,
)
);
$lastid = $wpdb->insert_id;
我的问题是
-
使用管理员用户登录时,我的 ajax 工作正常,但使用其他用户登录时
我网站的用户(订阅用户)给出错误“Opps!你不
有足够的权限访问此页面”
哪种类型
可访问性向订阅者提供使用的 admin-ajax.php 文件
【问题讨论】:
【参考方案1】:我的猜测是您没有为特权用户和非特权用户定义操作。两个都有吗
add_action( 'wp_ajax_ACTION', 'bookly_appo_Ajax' );
add_action( 'wp_ajax_nopriv_ACTION', 'bookly_appo_Ajax' );
在你的 php? wp_ajax_nopriv_ACTION
可能是您所缺少的。
【讨论】:
以上是关于wordpress 中的 Ajax 调用不适用于前端站点的订阅者用户的主要内容,如果未能解决你的问题,请参考以下文章