私は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;
}
}
}
}
私の質問は
管理者以外のユーザーが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');