Woocommerce関連の製品を次のテーマに含めました。
<?php wc_get_template( 'single-product/related.php' ); ?>
これは私のテンプレートにコピーされ、実行されています。
ただし、この製品でさまざまなアップセルを追加したにもかかわらず、$related_products
変数(ループで使用)がNULLです。これらの関連製品の表示を開始するために、他に何か変数がありますか?
それ以上のものが必要です(そしてpost_idは製品である必要があります):
global $product; // If not set…
if( ! is_a( $product, 'WC_Product' ) ){
$product = wc_get_product(get_the_id());
}
$args = array(
'posts_per_page' => 4,
'columns' => 4,
'orderby' => 'Rand',
'order' => 'desc',
);
$args['related_products'] = array_filter( array_map( 'wc_get_product', wc_get_related_products( $product->get_id(), $args['posts_per_page'], $product->get_upsell_ids() ) ), 'wc_products_array_filter_visible' );
$args['related_products'] = wc_products_array_orderby( $args['related_products'], $args['orderby'], $args['order'] );
// Set global loop values.
wc_set_loop_prop( 'name', 'related' );
wc_set_loop_prop( 'columns', $args['columns'] );
wc_get_template( 'single-product/related.php', $args );
またはもっと短い方法で(これはあなたに同じことを与えるでしょう):
global $product;
if( ! is_a( $product, 'WC_Product' ) ){
$product = wc_get_product(get_the_id());
}
woocommerce_related_products( array(
'posts_per_page' => 4,
'columns' => 4,
'orderby' => 'Rand'
) );
両方の方法がテストされ、機能します…