2013-08-05 36 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插件一試 - 發票將可用於管理員和客戶以及其附加發票,電子郵件(披露:我是作者)。