WooCommerce 関連商品(アップセル)の表示順を調整するコード

WooCommerceを使っていて、関連商品の表示順を調整しようとしても、順番がランダムになるので、調べたら フックを使って、表示順の挙動を変更できるとわかった。

商品の[高度な設定]の中にある[メニューの順序]に入力した順番で、関連商品を表示するには、下のコードを、functons.phpもしくは、my-snow-monkey.phpに追加すると、挙動が変わる。

/* WooCommerce 関連商品 アップセルの表示順をランダムから昇順に変更する */
function my_woocommerce_upsell_display_args( $args ) {

    $my_args = array(
        'posts_per_page' => $args['posts_per_page'],
        'orderby'        => 'menu_order', // ここを変更する
        'order'   => 'ASC',
        'columns'        => $args['columns'],
    );

    return $my_args;
}
add_filter( 'woocommerce_upsell_display_args', 'my_woocommerce_upsell_display_args' );

[高度な設定]の中にある[メニューの順序]はこちら↓

カスタマイズを行うのに参考になった記事は、下の3つ。感謝です。

関数リファレンス/WP Query – WordPress Codex 日本語版

woocommerce_upsell_display_args — WordPress filter hook – WordPress at Your Fingertips

woocommerce_upsell_display_args フックが用意されており、これを使うと、関連商品 アップセルの表示順を変更できる。

  • ‘orderby’ => ‘menu_order’
    • ‘menu_order’にすることで、「メニューの順序」で並ぶ順番を定義している
  • ‘order’ => $order
    • 昇順、小さな値から大きな値へ順番に並べる定義をしている

これらのパラメーターをフックからカスタマイズし、関連商品の表示順を「メニューの順序の順番」で表示できるようになった。

この記事を書いた人

大東 信仁

カンパチが好きです。

プロフィールはこちら

10月14日開催 参加者募集中
(画像をタップ→詳細へ)

ミッションナビゲート モニター
(画像をタップ→詳細へ)

広告