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 Print Invoices & Delivery Notes Pluginによって生成された請求書が開きます。しかし、それは私の顧客にはうまくいきません。「このページにアクセスするための十分な権限がありません」というメッセージが表示された Web ページが表示されます。代わりは。

私の仮定は、それがアクセスしているという事実と関係があるということです/wp-admin/admin-ajax.php~-ajax.phpGET を呼び出すことができ、ユーザーがアクセスできる別のものはありますか?

4

1 に答える 1

2

この呼び出しは「wp_ajax_」タイプのアクションに関連付けられており、通常、ログインしているすべてのユーザーがアクセスできるため、問題ありません。WordPress プラグインでの Ajax の詳細については、こちらを参照してください。

次の 2 つのブロックを開い/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 請求書プラグインを試すこともできます。管理者と顧客の両方が請求書を利用でき、請求書を電子メールに添付できます (開示: 私は著者です)。

于 2013-11-08T13:56:13.827 に答える