在其他页面(如商店页面)中显示按类别分类的产品

时间:2020-05-23 22:08:14

标签: woocommerce hook-woocommerce

我想要菜单页面(http://goriyalabs.com/mg/shop/)中的商店页面(http://goriyalabs.com/mg/menu/)布局。我正在使用此短代码[products limit="8" columns="4" category="gelato"],但数据以不同的布局显示。

商店页面布局:https://prnt.sc/smjzrc
菜单页面布局:https://prnt.sc/smk020

我希望菜单页面的布局与商店页面相同。

我正在function.php中使用此代码:

add_filter( 'woocommerce_variation_option_name', 'display_price_in_variation_option_name' );

function display_price_in_variation_option_name( $term ) {
    global $wpdb, $product;

    if ( empty( $term ) ) return $term;
    if ( empty( $product->id ) ) return $term;

    $id = $product->get_id();

    $result = $wpdb->get_col( "SELECT slug FROM {$wpdb->prefix}terms WHERE name = '$term'" );

    $term_slug = ( !empty( $result ) ) ? $result[0] : $term;

    $query = "SELECT postmeta.post_id AS product_id
                FROM {$wpdb->prefix}postmeta AS postmeta
                    LEFT JOIN {$wpdb->prefix}posts AS products ON ( products.ID = postmeta.post_id )
                WHERE postmeta.meta_key LIKE 'attribute_%'
                    AND postmeta.meta_value = '$term_slug'
                    AND products.post_parent = $id";

    $variation_id = $wpdb->get_col( $query );

    $parent = wp_get_post_parent_id( $variation_id[0] );

    if ( $parent > 0 ) {
         $_product = new WC_Product_Variation( $variation_id[0] );
         return $term . ' (' . wp_kses( woocommerce_price( $_product->get_price() ), array() ) . ')';
    }
    return $term;

}

0 个答案:

没有答案