我有一些自定义代码,我不知道如何捕捉邮政的要求。
<?php $nonce = wp_create_nonce('nrc_update_certifications_nonce');?>
<?php $link = admin_url('admin-ajax.php?action=nrc_update_certifications&nonce=' . $nonce); ?>
<file-upload
extensions="jpg,jpeg,png,pdf"
:accept="accept"
:multiple="true"
post-action="<?php echo $link;?>"
:data="{
types: accept,
certifications_ids: certifications_ids,
}"
v-model="certifications"
name="certifications[]"
@input-filter="inputFilter"
ref="upload">
<span class="button">Select files</span>
</file-upload>在我的子主题中,我有一个文件更新-证书。此文件是在functions.php中导入的。
function nrc_update_certifications() {
// I don't get here!
if ( !wp_verify_nonce( $_REQUEST['nonce'], "nrc_update_certifications_nonce")) {
exit("No naughty business please");
}
exit ("Works!");
}
add_action('wp_ajax_update_certifications', 'nrc_update_certifications');发布于 2020-11-23 13:19:03
正确的做法如下:
function nrc_update_certifications() {
// I don't get here!
if ( !wp_verify_nonce( $_REQUEST['nonce'], "nrc_update_certifications_nonce")) {
exit("No naughty business please");
}
exit ("Works!");
}
add_action('wp_ajax_nrc_update_certifications', 'nrc_update_certifications');更改的是,当您执行add_action时,操作以"wp_ajax_“开头,它后面必须是您在调用的action参数中指定的内容。因为您构建了这样的链接:
<?php $link = admin_url('admin-ajax.php?action=nrc_update_certifications&nonce=' . $nonce); ?>那么wp_ajax_后面缺少的部分必须是"nrc_update_certifications“。您可以更改的是指定为add_action的第二个参数的函数。
Sidenote:如果您希望ajax对未登录的用户也可用,那么您将丢失另一个添加操作的调用,该操作应该是:
add_action( 'wp_ajax_nopriv_nrc_update_certifications', 'nrc_update_certifications' );请参阅行动的"nopriv“部分。如果你想知道更多,我建议你看看这个:https://codex.wordpress.org/AJAX_in_Plugins
https://stackoverflow.com/questions/64968765
复制相似问题