私は、販売している商品のみを表示するページ(デフォルトのウ - コマースのアーカイブスタイル)を作成しようとしています。ここで言及するには、私は、可変の製品だけでなく、簡単です。 WooCommerceページを販売している商品を作成する
は、私は私のカスタムショートglobal $woocommerce_loop;
$atts = shortcode_atts(array(
'per_page' => '-1',
'columns' => '4',
'orderby' => 'title',
'order' => 'asc'
), $atts);
// Get products on sale
$product_ids_on_sale = wc_get_product_ids_on_sale();
$meta_query = WC()->query->get_meta_query();
$args = array(
'posts_per_page' => $atts['per_page'],
'orderby' => $atts['orderby'],
'order' => $atts['order'],
'no_found_rows' => 1,
'post_status' => 'publish',
'post_type' => 'product',
'meta_query' => $meta_query,
'post__in' => array_merge(array(0), $product_ids_on_sale)
);
ob_start();
$products = new WP_Query(apply_filters('woocommerce_shortcode_products_query', $args, $atts));
$columns = absint($atts['columns']);
$woocommerce_loop['columns'] = $columns;
if ($products->have_posts()) :
woocommerce_product_loop_start();
while ($products->have_posts()) : $products->the_post();
wc_get_template_part('content', 'product');
endwhile; // end of the loop.
woocommerce_product_loop_end();
endif;
wp_reset_postdata();
return '<div class="woocommerce columns-' . $columns . '">' . ob_get_clean() . '</div>';
作ってみましたが、結果として、私は唯一の2製品を取得します。
ヘルプやアイデアはありますか?
を聞きたいのですが、他の提案があれば
はうーん、私はこれを試してみましたが、それは私だけ2製品を返します。しかし、私の電子ショップでは、私はより多くの製品を販売しています。 –
@GeorgeNtoumなぜそれが分からないのですか?あなたの他の製品に販売価格がないことがありますか? 'wc_get_product_ids_on_sale()'コードは、販売価格でゼロ以外の値を探します。それが正しく追加されているかどうかを確認する必要があります。 – KbLaD3
ええ、それは私にも変わっているようです。私はすべての製品をループするPHPファイルを作成し、各製品について$ product-> is_on_sale()メソッドを使用してチェックを行い、すべての販売製品を返しました。だから私は、製品が売り上げでおかしいと思うことを理解しています。 (また、私は販売バッジを持っている)。私は見つけた一時的な解決策を投稿します。 –