我对 WordPress 完全陌生,我正在尝试建立一个简单的商店。它工作正常,但我希望我的客户能够立即查看订单后的发票。我下载了WooCommerce 打印发票和送货单插件,但它只允许我打印发票,而不允许客户打印。因此,我修改了 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 并且用户可以访问?
最佳答案
此调用与“wp_ajax_”类型的操作相关联,通常允许所有登录用户访问它,所以这很好。您可以在 WordPress 插件 here 中阅读有关 Ajax 的更多信息。 .
您可能希望打开/classes/class-wcdn-print.php
并注释掉这两个 block :
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尝试一下插件 - 管理员和客户都可以使用发票,并且它将发票附加到电子邮件中(披露:我是作者)。
关于php - WordPress WooCommerce - 为客户打印发票 - 访问被拒绝,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18064532/