2

我对 WordPress 完全陌生,我正在尝试建立一个简单的商店。它工作正常,但我希望我的客户能够立即从他们的订单中查看发票。我下载了WooCommerce Print Invoices & Delivery Notes插件,但它只允许打印发票,而不是客户。因此,我修改了 WooCommerce/templates/myaccount/my-orders.php文件以包含一个生成发票的按钮:

/* USERCONTENT */
if ( $order->status == 'completed' ) {
    $actions['invoice'] = array(
        'url' => wp_nonce_url( '/wp-admin/admin-ajax.php?action=generate_print_content&template_type=invoice&order_id=' . $order->id , 'generate_print_content' ),
        'name' => __( 'Invoice', 'woocommerce' )
    );
}
/* ENDUSERCONTENT */

这在我查看我的订单时有效。我给自己分配了一个测试订单:

在此处输入图像描述

单击发票按钮打开由WooCommerce 打印发票和交货单插件生成的发票,这正是我想要的。但这对我的客户不起作用。他们看到一个网页,其中显示“您没有足够的权限访问此页面”消息。反而。

我的假设是它与它正在访问/wp-admin/admin-ajax.php. 还有另一个~-ajax.php我可以调用 GET 并且用户可以访问的吗?

4

1 回答 1

2

此调用与“wp_ajax_”类型的操作相关联,通常允许所有登录用户访问它,所以这很好。您可以在此处阅读有关 WordPress 插件中的 Ajax 的更多信息。

您可能希望打开/classes/class-wcdn-print.php并注释掉这两个块:

            if( !is_admin() ) {
                wp_die( __( 'You do not have sufficient permissions to access this page.' ) );
            }

            if( !current_user_can( 'manage_woocommerce_orders' ) && !current_user_can( 'edit_shop_orders' ) ) {
                wp_die( __( 'You do not have sufficient permissions to access this page.' ) );
            }

或者你可以试试WooCommerce PDF Invoice插件 - 管理员和客户都可以使用发票,而且它会将发票附加到电子邮件中(披露:我是作者)。

于 2013-11-08T13:56:13.827 回答