php - WordPress WooCommerce - 为客户打印发票 - 访问被拒绝

标签 php wordpress woocommerce invoices

我对 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 */

当我查看我的订单时,此功能有效。我给自己分配了一个测试订单:

enter image description here

单击发票按钮将打开由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/

相关文章:

php - 如何在 WooCommerce 添加到购物车按钮下方添加文本

javascript - 无法定位 jQuery 日期选择器中的元素

php - 基于用户角色的 Woo Commerce 登录重定向

php - 获取深度不确定的多维数组的叶子节点值

php - Adsense api 访问和包装器

php - 只有默认的永久链接工作 wordpress 其他人变成 404 错误

php - crop - scale - center & fit an image into a round 缩略图

php - 如何在javascript中正确使用引号

javascript - 如何从 "View in iTunes"这样的浏览器启动Windows应用程序?

mysql - 剥离并简化Wordpress中的 "_wp_attachment_metadata"