我在WordPress页面中有一个联系人表单,如下所示:
$( \'#contact_form\' ).bootstrapValidator({
fields: {
// ...
},
submitHandler: function( formInstance ) {
$.post( "../send-message", $("#contact_form").serialize(), function( result ) {
alert( pw_script_vars.State );
});
}
});
当使用Ajax请求提交表单时,它会转到另一个WordPress页面,标题为
/send-message
它有PHP代码来发送电子邮件,然后它应该向Ajax请求返回成功或失败值,以警告成功或失败消息。我试过使用
wp_localize_script
中的函数
functions.php
文件使用固定值,并且工作正常:
function enqueue_scripts() {
wp_enqueue_script( \'pw_script\', get_stylesheet_directory_uri().\'/inc/js/functions.min.js\', array( \'jquery\' ) );
wp_localize_script( \'pw_script\', \'pw_script_vars\', array( \'State\' => \'success\' ) );
}
add_action( \'wp_enqueue_scripts\', \'enqueue_scripts\' );
但是当我尝试使用
wp_localize_script
在
/send-message
WordPress页面无法运行。以下是“/发送消息”页面的内容:
<?php
$sendSuccess = sendMessage();
if( $sendSuccess )
wp_localize_script( \'pw_script\', \'pw_script_vars\', array( \'State\' => \'success\' ) );
else
wp_localize_script( \'pw_script\', \'pw_script_vars\', array( \'State\' => \'failure\' ) );
function sendMessage() {
//This function will send the email then it will return true or false.
}
?>
使用
wp_localize_script
在
/send-message
导致未定义的变量
pw_script_vars
在JavaScript文件中。
如何使用wp_localize_script
在WordPress页面中,而不是functions.php
?