【问题标题】:Woocommerce - Display Featured Products at top of Category PageWoocommerce - 在类别页面顶部显示特色产品
【发布时间】:2018-10-21 01:54:29
【问题描述】:

我想在每个产品类别页面的顶部有一个部分,随机显示该类别中的三个特色产品。下面是常规的存档循环。

不使用插件的最佳方法是什么?

【问题讨论】:

    标签: woocommerce categories archive


    【解决方案1】:

    下面的代码可以帮助你:

        add_filter('posts_orderby', 'show_featured_products_orderby',10,2);
    function show_featured_products_orderby($order_by, $query){
      global  $wpdb ;
      if( ($query->get('post_type')=='product') && (!is_admin()) ){
        $orderby_value = ( isset( $_GET['orderby'] ) ? wc_clean( (string) $_GET['orderby'] ) : apply_filters( 'woocommerce_default_catalog_orderby', get_option( 'woocommerce_default_catalog_orderby' ) ) );
        $orderby_value_array = explode( '-', $orderby_value );
        $orderby = esc_attr( $orderby_value_array[0] );
        $order = ( !empty($orderby_value_array[1]) ? $orderby_value_array[1] : 'ASC' );
        $feture_product_id = wc_get_featured_product_ids();
        if ( is_array( $feture_product_id ) && !empty($feture_product_id) ) {
          if ( empty($order_by) ) {
            $order_by = "FIELD(" . $wpdb->posts . ".ID,'" . implode( "','", $feture_product_id ) . "') DESC ";
          } else {
            $order_by = "FIELD(" . $wpdb->posts . ".ID,'" . implode( "','", $feture_product_id ) . "') DESC, " . $order_by;
          }
        }  
      }
      return $order_by;
    }
    

    将此代码添加到活动主题 function.php 文件中

    【讨论】:

      【解决方案2】:

      我记下了按类别显示特色产品并创建了一个带有简码的简单插件。在此处查看完整的注释https://jameshwartlopez.com/plugin/get-featured-products-of-a-category/

      基本上你只需要下载并安装我创建的插件https://github.com/jameshwartlopez/jvl-featured-product-by-category

      然后在您的functions.php 文件中,您可以连接到woocommerce_before_shop_loop 或woocommerce_archive_description。测试哪个钩子适合您的网站。下面是一个例子。

      <?php
      
      add_action('woocommerce_before_shop_loop', function() {
      
          if(is_product_category()){
              $current_term = get_queried_object();
              $cat_slug = $current_term->slug
              echo do_shortcode( "[featured_products_by_category cat='".$cat_slug."']" );
          }
      
      });
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2021-09-03
        • 2019-04-29
        • 2017-10-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多