Nonce keeps failing

时间:2014-02-20 作者:Ewout

我有一个插件,可以为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.

1 个回复
SO网友:Otto

为什么要使用编辑。此导出链接的php页面?编辑。php代码似乎正在检查“批量发布”nonce,这可能就是您失败的地方,因为您没有使用该nonce。

您可能应该使用post。php,或者更通用的操作挂钩。

结束

相关推荐

未定义的索引:自定义POST元数据中的at_nonce

我的自定义post metabox出现此错误。自定义post和metabox工作正常,但如果我已启用调试,并且在尝试保存任何其他页面或post时,我将收到一个错误:注意:未定义的索引:在/Users/jay/site/wp-content/themes/mytheme/dogs-post-type中。php在线53注意:未定义的索引:在/Users/jay/site/wp-content/themes/mytheme/dogs-post-type中。php在线53警告:无法修改标题信息-标题已由/User