2017-10-10 11 views
1

WoCommerceのクロスセルはカートページに表示されます。デフォルトでは、それらはランダムにソートされます。誰も私の日付(=製品の出版日)でそれらを並べ替えるのを助けてもらえますか?どうもありがとう!ここでソートWooCommerceの日付でのクロス販売

は、クロスsells.phpの内容です:HERE

<?php 
/** 
* Cross-sells 
* 
* This template can be overridden by copying it to yourtheme/woocommerce/cart/cross-sells.php. 
* 
* @see   https://docs.woocommerce.com/document/template-structure/ 
* @author  WooThemes 
* @package  WooCommerce/Templates 
* @version  3.0.0 
*/ 

if (! defined('ABSPATH')) { 
    exit; 
} 

if ($cross_sells) : ?> 

    <div class="cross-sells"> 

     <h2><?php _e('You may be interested in&hellip;', 'woocommerce') ?></h2> 

     <?php woocommerce_product_loop_start(); ?> 

      <?php foreach ($cross_sells as $cross_sell) : ?> 

       <?php 
        $post_object = get_post($cross_sell->get_id()); 

        setup_postdata($GLOBALS['post'] =& $post_object); 

        wc_get_template_part('content', 'product'); ?> 

      <?php endforeach; ?> 

     <?php woocommerce_product_loop_end(); ?> 

    </div> 

<?php endif; 

wp_reset_postdata(); 

は、ソリューションです:

あなたはクロスsells.phpを編集する必要はありません!代わりに、仕事をする小さなプラグインを作成することができます:

  1. 次のコードを新しいPHPファイルに入れます。
  2. WPプラグインフォルダにアップロードします。
  3. WPバックエンドでプラグインを有効にします。
  4. あなたのカートページの結果をテストします。あなたのクロスセルは出版日によって今注文されます。
  5. 注文を手作業で変更したい場合は、製品ごとにWPバックエンドを使用して公開日を変更するだけです。

このソリューションのフィルタフックを提供してくれたLoicTheAztecに感謝します。ここで (。このフィルタフック用のプラグインを作成することで、あなたがfunction.phpを編集したり、子テーマを作成する必要はありません)

は、この小さなプラグインのコードです:

<?php 

/** 
* Plugin Name: Woocommerce Sort Cross-sales by Date 
* Description: This plugin is used to sort cross-sells by date 
* Author: ARaction GmbH with help of LoicTheAztec - no guarantee or support! 
* Version: 0.1 
*/ 

/* Your code goes below here. */ 
add_filter('woocommerce_cross_sells_orderby', 'custom_cross_sells_orderby', 10, 1); 
function custom_cross_sells_orderby($orderby){ 
    $orderby = 'date'; 
    return $orderby; 
} 
/* Your code goes above here. */ 

?> 
+0

'if($ cross_sells):'の直後に 'print_r($ cross_sells)'を行い、その出力を投稿に追加できますか? – Matthew

答えて

1

クロスを注文するにはあなたはこのフィルターフックを使用することができます日付で販売している:

add_filter('woocommerce_cross_sells_orderby', 'custom_cross_sells_orderby', 10, 1); 
function custom_cross_sells_orderby($orderby){ 
    $orderby = 'date'; 
    return $orderby; 
} 

コードは、あなたのアクティブな子テーマ(アクティブテーマや任意のプラグインファイル内)のfunction.phpファイルになります。

テスト済みで動作します。

+0

ありがとうございました!魅力的な作品! – ARaction