wordpress 在woodmart主题中隐藏缺货产品(元素或网格或旋转木马)

enyaitl3  于 2023-08-03  发布在  WordPress
关注(0)|答案(2)|浏览(118)

嗨伙计们我用这个代码

add_action( 'woocommerce_before_shop_loop_item_title', 'wk_out_of_stock_variations_loop' );
function wk_out_of_stock_variations_loop(){
    global $product;
    if ( $product->product_type == 'variable' ) { // if variation product is out of stock
        $available = $product->get_available_variations();
        if ( $available )foreach ( $available as $instockvar ) {
            if ( isset($instockvar['attributes']['attribute_pa_megethos'] ) ) {
              
                if ( ( $instockvar['attributes']['attribute_pa_megethos'] == $_GET['filter_megethos'] ) && (!$instockvar['max_qty']>0) ) {
                global $product;
        $id = $product->get_id();
        echo "<style>.post-$id{display: none}</style>";
                }
            
            }
        }
    }   
    if ( !$product->is_in_stock() ) { // if single product is out of stock
                global $product;
            $id = $product->get_id();
            echo "<style>.post-$id{display: none}</style>";
    }
}

字符串
这段代码工作正常,但隐藏的产品,但他们的地方仍然在网页上,但我不想显示不存在的产品,并取代这些现有的产品

b09cbbtk

b09cbbtk1#

你应该从Woocommerce ->设置->库存->“从目录中隐藏缺货项目”

qlvxas9a

qlvxas9a2#

你可以使用这个代码。在修改后的代码中,我添加了一个额外的步骤,在滑块或网格循环中显示脱销产品之前,从$related_products数组中排除脱销产品。

<?php
/**
 * Related Products
 *
 * This template can be overridden by copying it to yourtheme/woocommerce/single-product/related.php.
 *
 * HOWEVER, on occasion WooCommerce will need to update template files and you
 * (the theme developer) will need to copy the new files to your theme to
 * maintain compatibility. We try to do this as little as possible, but it does
 * happen. When this occurs the version of the template file will be bumped and
 * the readme will list any important changes.
 *
 * @see         https://docs.woocommerce.com/document/template-structure/
 * @package     WooCommerce/Templates
 * @version     3.9.0
 */

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

$related_product_view = woodmart_get_opt('related_product_view');

if ($related_products) : ?>

    <div class="related-products">

        <?php
        $heading = apply_filters('woocommerce_product_related_products_heading', __('Related products', 'woocommerce'));

        if ($heading) :
            ?>
            <h3 class="title slider-title"><?php echo esc_html($heading); ?></h3>
        <?php endif; ?>

        <?php
        woodmart_enqueue_product_loop_styles(woodmart_get_opt('products_hover'));

        if ($related_product_view == 'slider') {
            $slider_args = array(
                'slides_per_view' => (woodmart_get_opt('related_product_columns')) ? woodmart_get_opt('related_product_columns') : apply_filters('woodmart_related_products_per_view', 4),
                'img_size' => 'woocommerce_thumbnail',
                'products_bordered_grid' => woodmart_get_opt('products_bordered_grid'),
                'products_bordered_grid_style' => woodmart_get_opt('products_bordered_grid_style'),
                'products_with_background' => woodmart_get_opt('products_with_background'),
                'products_shadow' => woodmart_get_opt('products_shadow'),
                'products_color_scheme' => woodmart_get_opt('products_color_scheme'),
                'custom_sizes' => apply_filters('woodmart_product_related_custom_sizes', false),
                'product_quantity' => woodmart_get_opt('product_quantity')
            );

            woodmart_set_loop_prop('products_view', 'carousel');

            // Exclude out-of-stock products
            $related_products = array_filter($related_products, function ($product) {
                return $product->is_in_stock();
            });

            if (!empty($related_products)) {
                echo woodmart_generate_posts_slider($slider_args, false, $related_products);
            }
        } elseif ($related_product_view == 'grid') {

            woodmart_set_loop_prop('products_columns', woodmart_get_opt('related_product_columns'));
            woodmart_set_loop_prop('products_different_sizes', false);
            woodmart_set_loop_prop('products_masonry', false);
            woodmart_set_loop_prop('products_view', 'grid');

            // Exclude out-of-stock products
            $related_products = array_filter($related_products, function ($product) {
                return $product->is_in_stock();
            });

            if (!empty($related_products)) {
                woocommerce_product_loop_start();

                foreach ($related_products as $related_product) {
                    $post_object = get_post($related_product->get_id());

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

                    wc_get_template_part('content', 'product');
                }

                woocommerce_product_loop_end();

                woodmart_reset_loop();

                if (function_exists('woocommerce_reset_loop')) {
                    woocommerce_reset_loop();
                }
            }
        }

        ?>

    </div>

<?php endif;

wp_reset_postdata();

字符串

相关问题