2013-08-05 26 views
2

我完全不熟悉WordPress,我正尝试设置一个简单的商店。它工作正常,但我希望我的客户能够从订单中立即查看发票。我下载了WooCommerce打印发票&送货注意事项插件,但它只允许打印发票,而不是客户。因此,我修改了WooCommerce /templates/myaccount/my-orders.php文件,包括生成发票按钮:WordPress WooCommerce - 为客户打印发票 - 拒绝访问

/* 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并且用户将有权访问?

回答

2

此调用绑定到“wp_ajax_”类型的操作,通常允许所有登录用户访问它,所以这很好。您可以在WordPress插件here中阅读更多关于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插件一试 - 发票将可用于管理员和客户以及其附加发票,电子邮件(披露:我是作者)。