如果ajax请求成功,我正在寻找一种调用php函数的方法。
基本设置代码:
wp_register_script( 'theme-follow-me-ajax', ... );
wp_localize_script('theme-follow-me-ajax', 'ajax_setting', array(
'ajax_url' => admin_url('admin-ajax.php'),
'ajax_follow_error' => $this->km_follow_me_error(),
....
));
wp_enqueue_script( 'theme-follow-me-ajax' );
显示错误的内容,应该可以自定义
public function km_follow_me_error() {
$content = esc_html__( 'An error happened. We\'re unable to complete your request.', 'theme' );
echo apply_filters( 'theme_hook_follow_me_error_message', $content );
}
Ajax电话:
$.ajax( {
url : ajax_setting.ajax_url,
type : 'post',
data: {
action : 'km_ajax_follow_me',
security : ajax_setting.ajax_nonce,
...
},
success: function( data ) {
$('.km-follow-me').html( ajax_setting.ajax_follow_success ).hide().fadeIn( 'slow' );
//console.log( ajax_setting.ajax_follow_success );
},
} )
WP wp_ajax_
功能
public function addon_ajax_follow_me() {
check_ajax_referer( 'km-ajax-create-nonce', 'security' );
... update user meta ...
wp_die();
}
$this->loader->add_action( 'wp_ajax_km_ajax_follow_me', $plugin_public, 'addon_ajax_follow_me' );
在控制台中,我收到null
消息,因此它不会抓取km_follow_me_error
函数。
有更好的方法吗?
答案 0 :(得分:1)
你做错了。无法通过Javascript以您尝试的方式调用/访问PHP函数。您有两个选项可以在AJAX成功时调用该函数。
在WordPress中创建/注册另一个AJAX函数,可能命名为ajax_follow_success
,并在之前的AJAX调用中成功调用它。
在您的第一个功能WordPress AJAX功能中识别,即addon_ajax_follow_me
是否成功,并在那里调用下一个功能。