我有一个插件,可以为99%的用户工作,但有一个用户有问题。该插件打开一个thickbox模式窗口,并通过load-edit.php
钩
链接显示在元框中,如下所示:
add_action( \'add_meta_boxes_shop_order\', \'add_box\' );
function add_box() {
add_meta_box( \'myparcel\', __( \'MyParcel\', \'wcmyparcel\' ), \'create_box_content\', \'shop_order\', \'side\', \'default\' );
}
function create_box_content() {
global $post_id;
$export_link = wp_nonce_url( admin_url( \'edit.php?&action=wcmyparcel&order_ids=\' . $post_id ), \'wcmyparcel\' );
?>
<a href="<?php echo $export_link; ?>" class="button myparcel one-myparcel" alt="Exporteer naar MyParcel">Exporteer naar MyParcel</a>
<?php
}
然后我挂接到load edit。php:
add_action( \'load-edit.php\', \'wcmyparcel_action\' );
function wcmyparcel_action() {
if ( isset($_REQUEST[\'action\']) && $_REQUEST[\'action\'] == \'wcmyparcel\' ) {
// do stuff
}
}
当该特定用户尝试访问该页面时,他会得到“您确定要这样做吗?”消息这表示nonce失败(正确吗?),但我不明白为什么它会失败,尤其是因为它对其他人都有效。正如您所看到的,在这个阶段,我自己没有执行任何nonce检查,因此它甚至在触发操作之前就失败了。
如何诊断此错误的原因?
那些对完整代码感兴趣的人,可以找到插件here.