web-dev-qa-db-ja.com

woocommerceで、すべての注文を表示するためのショートコード/ページはありますか?

wordpressサイトにプラグインwoocommerceを使用していて、メンバーが注文履歴を表示できるセクションが必要です。woocommerceに、メンバーの注文履歴を表示するショートコードまたはページはありますか?

7
dave

マイアカウントショートコード:

[woocommerce_my_account order_count="-1"]

顧客が過去の注文を表示して情報を更新できる「マイアカウント」セクションを表示します。表示する番号または順序を指定できます。デフォルトでは15に設定されています(-1を使用してallを表示します注文

参照: Woocommerce Shortcodes


更新

注文だけが必要な場合は、すでにショートコードがあるかどうかはわかりませんが、woocommerce_my_accountを例として作成しました。

function shortcode_my_orders( $atts ) {
    extract( shortcode_atts( array(
        'order_count' => -1
    ), $atts ) );

    ob_start();
    wc_get_template( 'myaccount/my-orders.php', array(
        'current_user'  => get_user_by( 'id', get_current_user_id() ),
        'order_count'   => $order_count
    ) );
    return ob_get_clean();
}
add_shortcode('my_orders', 'shortcode_my_orders');

これをfunctions.phpファイルに追加し、[my_orders order_counts=10]のように使用します(order_countsはオプションで、欠落している場合はすべての注文が一覧表示されます)。

18
d79

私は抽出について読んでいましたが、明らかにそれはWordpressではもう推奨されていません。私はこの解決策を見つけました、これが役立つことを願っています:

function shortcode_my_orders( $atts ) {
$args= shortcode_atts( 
array(
    'order_count' => -1
    ), 
$atts
);
$order_count = esc_attr( $args['order_count'] );


ob_start();
wc_get_template( 'myaccount/my-orders.php', array(
    'current_user'  => get_user_by( 'id', get_current_user_id() ),
    'order_count'   => $order_count
) );
return ob_get_clean();

}

0
A.Sh