web-dev-qa-db-ja.com

ワードプレスでのAjax呼び出しがフロントサイトの加入者ユーザーに対して機能しない

私はAjaxを使用してワードプレスでカスタムテーブルにデータを追加するための簡単なワードプレスのフォームを持っている

私の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');
            function add_category_bookly_callback()
            {
                $storeid = $_REQUEST['storeid'];

                $rows = $wpdb->insert(
                    $table_category, array(

                        'store_id' => $storeid,
                    )
                );
                $lastid = $wpdb->insert_id;
            }
        }
    }
}

私の質問は

  1. adminでログインすると私のajaxはうまく動作しますが、私のサイトの他のユーザー(購読者ユーザー)でログインすると「Opps!あなたはこのページにアクセスするのに十分なアクセス許可がありません」というエラーを出します。
  2. 使用されているadmin-ajax.phpファイルを購読者に提供するアクセシビリティの種類
2
Ankur Bhadania

管理者以外のユーザーがajax関数を使用できるようにするには、 wp_ajax_nopriv を使用して2番目のフックも含める必要があります。

だからこの直後に:

add_action('wp_ajax_add_category_bookly', 'add_category_bookly_callback');

あなたはこれを含めるべきです:

add_action('wp_ajax_nopriv_add_category_bookly', 'add_category_bookly_callback');

5
jetlej