woocommerce_products_will_display محصولات فروشگاه به درستی نمایش داده می شود

woocommerce_products_will_display محصولات فروشگاه به درستی نمایش داده می شود

تابع ووکامرسی woocommerce_products_will_display – آیا محصولات به درستی نمایش داده می شود در فروشگاه ؟

Syntax – سینتکس

woocommerce_products_will_display(); 

Usage – نحوه استفاده

if ( !function_exists( 'woocommerce_products_will_display' ) ) { 
    require_once ABSPATH . PLUGINDIR . 'woocommerce/includes/wc-template-functions.php'; 
} 
 
  
// NOTICE! Understand what this does before running. 
$result = woocommerce_products_will_display(); 
    

Defined – محل تعریف

/includes/wc-template-functions.php

function woocommerce_products_will_display() { 
    global $wpdb; 
 
    if ( is_shop() ) { 
        return 'subcategories' !== get_option( 'woocommerce_shop_page_display' ) || is_search(); 
    } 
 
    if ( ! is_product_taxonomy() ) { 
        return false; 
    } 
 
    if ( is_search() || is_filtered() || is_paged() ) { 
        return true; 
    } 
 
    $term = get_queried_object(); 
 
    if ( is_product_category() ) { 
        switch ( get_woocommerce_term_meta( $term->term_id, 'display_type', true ) ) { 
            case 'subcategories' : 
                // Nothing - we want to continue to see if there are products/subcats 
            break; 
            case 'products' : 
            case 'both' : 
                return true; 
            break; 
            default : 
                // Default - no setting 
                if ( get_option( 'woocommerce_category_archive_display' ) != 'subcategories' ) { 
                    return true; 
                } 
            break; 
        } 
    } 
 
    // Begin subcategory logic 
    if ( empty( $term->term_id ) || empty( $term->taxonomy ) ) { 
        return true; 
    } 
 
    $transient_name = 'wc_products_will_display_' . $term->term_id . '_' . WC_Cache_Helper::get_transient_version( 'product_query' ); 
 
    if ( false === ( $products_will_display = get_transient( $transient_name ) ) ) { 
        $has_children = $wpdb->get_col( $wpdb->prepare( "SELECT term_id FROM {$wpdb->term_taxonomy} WHERE parent = %d AND taxonomy = %s", $term->term_id, $term->taxonomy ) ); 
 
        if ( $has_children ) { 
            // Check terms have products inside - parents first. If products are found inside, subcats will be shown instead of products so we can return false. 
            if ( sizeof( get_objects_in_term( $has_children, $term->taxonomy ) ) > 0 ) { 
                $products_will_display = false; 
            } else { 
                // If we get here, the parents were empty so we're forced to check children 
                foreach ( $has_children as $term_id ) { 
                    $children = get_term_children( $term_id, $term->taxonomy ); 
 
                    if ( sizeof( get_objects_in_term( $children, $term->taxonomy ) ) > 0 ) { 
                        $products_will_display = false; 
                        break; 
                    } 
                } 
            } 
        } else { 
            $products_will_display = true; 
        } 
    } 
 
    set_transient( $transient_name, $products_will_display, DAY_IN_SECONDS * 30 ); 
 
    return $products_will_display; 
} 

versions – نسخه ها

از نسخه : 3.0.2

نسخه فعلی : 3.0.6

دیگر نسخه ها : 3.0.6 , 3.0.5 , 3.0.4 , 3.0.3 , 3.0.2

ارسال نظر

جهت استفاده از کد حتما از تگ pre استفاده نمایید .

contact us