Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/266.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
我的wordpress插件ajax方法没有运行php方法并返回0_Php_Jquery_Ajax_Wordpress - Fatal编程技术网

我的wordpress插件ajax方法没有运行php方法并返回0

我的wordpress插件ajax方法没有运行php方法并返回0,php,jquery,ajax,wordpress,Php,Jquery,Ajax,Wordpress,我让其他ajax方法正常工作,并且我遵循了与此相同的步骤,但它甚至没有运行php方法 /* * Enqueue plguin's script */ function assing_store_scripts() { wp_enqueue_script('assignStore', plugins_url( 'store-assign/assign.js', dirname(__FILE__)), array('jquery')); wp_enqueue_script('getU

我让其他ajax方法正常工作,并且我遵循了与此相同的步骤,但它甚至没有运行php方法

/*
* Enqueue plguin's script
*/
function assing_store_scripts() {
    wp_enqueue_script('assignStore', plugins_url( 'store-assign/assign.js', dirname(__FILE__)), array('jquery'));
    wp_enqueue_script('getUserStores', plugins_url( 'store-assign/assign.js', dirname(__FILE__)), array('jquery'));

    // ---- This one is ----- 
    wp_enqueue_script('getStoreSettings', plugins_url( 'store-assign/assign.js', dirname(__FILE__)), array('jquery'));
    // -------- End ---------

    wp_enqueue_script('postStoreSettings', plugins_url( 'store-assign/assign.js', dirname(__FILE__)), array('jquery'));
}
add_action( 'admin_enqueue_scripts', 'assing_store_scripts' );
这是“assign.JS”文件上的JS方法:

这是php回调ajax方法。在这个例子中,只是一个variable POST的响应,只是为了测试,但我无法得到响应。我总是得到零“0”

/*
 * Ajax
 * Get Franchisee's Store Settings
 */
function getStoreSettings() {
    global $wpdb;

    echo json_encode($_POST);
    wp_die();
}
add_action('wp_ajax_getUserStores', 'getStoreSettings');

您的
添加操作
应该是

add_action( 'wp_ajax_nopriv_getStoreSettings', 'getStoreSettings' );
add_action( 'wp_ajax_getStoreSettings', 'getStoreSettings' );

您对ajax提交的操作是
getStoreSettings
,而您在
wp\u ajax\u
上定义的操作是
getUserStores
,它返回0,因为您的请求正在查找从未定义的操作
wp\u ajax\u getStoreSettings

像这样做

ajax数据

data: {
    'action': 'getStoreSettings',
    'StoreID': $this.data('storeid')
},
Ajax函数

function getStoreSettings() {
    global $wpdb;
    wp_send_json( $_REQUEST );
}
add_action('wp_ajax_getStoreSettings', 'getStoreSettings');

此外,您应该添加nonce验证以确保其安全性,

仅当这是针对面向前端的ajax请求时。否则nopriv就不应该包括在内。谢谢,伙计,就是这样!我根本没有在前端使用这种方法。我不能,因为Symmetrics Web response的编写时间比您的早,所以我先用他们解决了我的问题。在那之后,我看到了你的回复,我写信给你只是出于礼貌。如果系统允许我选择多个响应,我会,但我不能。“对不起,伙计。”卡洛斯迪亚兹,实际上我先回答了。看看《泰晤士报》。那么,你必须问管理员,为什么你的答案出现在旧答案之后,而它必须按年代顺序排列。我标出了第一个正确答案,我发现那不是你的。天哪!!正如你所说的,这是一次勾引!!对于这种方法,我确实复制粘贴了所有内容并更改了必要的内容,但我忘记了那个。非常感谢兄弟。谢谢你给我的建议,我一定要用它。
function getStoreSettings() {
    global $wpdb;
    wp_send_json( $_REQUEST );
}
add_action('wp_ajax_getStoreSettings', 'getStoreSettings');