概要
woocommerce_cross_sells_orderby
フィルタは、WooCommerce におけるクロスセル商品(関連商品)の表示順序を変更する際に使用されます。このフィルタは、デフォルトの表示順序をカスタマイズしたい場合や、特定の販売戦略に基づいて商品を並べ替えたい場合に利用されます。具体的には、以下のような機能を実装する際によく使われます。
- 人気商品の優先表示
- 特定カテゴリーの商品を先に表示
- 新着商品の優先表示
- 価格順の商品の表示
- カスタムフィールドに基づいた表示順序
- セール中の商品を優先的に表示
構文
add_filter( 'woocommerce_cross_sells_orderby', 'custom_cross_sells_orderby' );
パラメータ
$orderby
: 既定の並び順$product_id
: 現在の製品の ID
戻り値
- 変更された並び順(例:
'date'
,'price'
,'popularity'
などの定数)
使用可能なプラグイン WooCommerce のバージョン
- WooCommerce 3.0以降
WordPress のバージョン
- WordPress 4.0以降
この関数のアクションでの使用可能性
アクション | 使用可能性 |
---|---|
mu_plugin_loaded | |
registered_post_type | |
plugins_loaded | |
wp_roles_init | |
setup_theme | |
after_setup_theme | |
set_current_user | |
init | |
register_sidebar | |
wp_loaded | |
send_headers | |
parse_query | |
pre_get_posts | |
wp | |
template_redirect | |
get_header | |
wp_head |
サンプルコード
サンプル 1: 人気商品の優先表示
add_filter( 'woocommerce_cross_sells_orderby', function( $orderby ) {
return 'popularity'; // 人気の商品を優先的に表示
});
このサンプルでは、クロスセル商品を人気順に並べ替えています。
サンプル 2: 新着商品の優先表示
add_filter( 'woocommerce_cross_sells_orderby', function( $orderby ) {
return 'date'; // 日付順で並び替え
});
このコードは、クロスセル商品の表示を新着順に変更します。
サンプル 3: 価格順の商品の表示
add_filter( 'woocommerce_cross_sells_orderby', function( $orderby ) {
return 'price'; // 価格順で商品を表示
});
このサンプルでは、商品の価格で並べ替えを行い、安いものから表示します。
サンプル 4: 特定カテゴリーの商品を先に表示
add_filter( 'woocommerce_cross_sells_orderby', function( $orderby, $product_id ) {
$cross_sells = get_post_meta($product_id, '_crosssell_ids', true);
// 特定カテゴリーのIDを例示
$category_id = '12';
// 特定カテゴリーの商品をフィルタリング
return array_filter($cross_sells, function($id) use ($category_id) {
return has_term($category_id, 'product_cat', $id);
});
});
このサンプルでは、特定のカテゴリーに属する商品のみを表示させる方法を示しています。
サンプル 5: カスタムフィールドに基づいた表示順序
add_filter( 'woocommerce_cross_sells_orderby', function( $orderby ) {
return 'meta_value_num'; // カスタムフィールドに基づいて並び替え
}, 10, 2 );
このコードは、カスタムフィールドの数値に基づいて商品を並べ替えます。
著作権フリーのサンプルコードです。引用元は各自で確認してください。