gpt4 book ai didi

php - 隐藏在 Woocommerce 中默认选择的具有唯一变体的可变产品下拉列表

转载 作者:行者123 更新时间:2023-11-28 14:43:44 24 4
gpt4 key购买 nike

我有一个独特的问题。我正在使用他们无法支持请求的插件。我需要将变体拆分成单独的元素,但如果我复制和粘贴并将它们变成一个简单的产品,那么我无法同步产品的计数以跟踪库存。作为一种解决方法,我需要能够禁用我不需要的变体,只保留我需要的变体。但这是我遇到麻烦的地方。如果我启用了一个变体,那么我不想显示下拉菜单,而是希望它在 UI 上看起来像一个简单的产品。我尝试了一切,但无法正常工作。

我什至尝试过使用

add_filter( 'woocommerce_hide_invisible_variations', '__return_true', 10, 3 );

没有成功,因为它们可见且未隐藏,即使计数为 0,价格为 0,并且该元素已禁用。

如何显示没有下拉菜单的产品页面?更进一步;我删除了所有变体,除了我需要保留的变体。由于同步的插件,我需要将它保持在变化模式。如何在不显示任何下拉菜单的情况下显示它?

示例逻辑:

如果产品类型是变体并且启用计数 == 1,则特殊 ui 显示,否则正常。

谢谢。

最佳答案

IMPORTANT: The code only works when the unique variation is selected as default form value:

enter image description here

以下代码将隐藏仅启用一个变体并默认选中的可变产品、属性下拉列表和所选变体价格:

add_action( 'woocommerce_before_add_to_cart_form', 'single_unique_variation_ui', 10 );
function single_unique_variation_ui(){
global $product;

if( ! $product->is_type('variable') )
return; // Only variable products

$available_variations = $product->get_available_variations(); // Get available variations
$default_attributes = $product->get_default_attributes(); // Get default attributes

// Only for a unique selected variation by default
if( ! ( sizeof($available_variations) == 1 && sizeof($default_attributes) == 1 ) )
return;

// Get the unique variation
$variation = reset($available_variations);

// Loop through
if( reset($variation['attributes']) == reset($default_attributes) ) :
// Styles
?>
<style>
div.woocommerce-variation-price, table.variations { display:none; }
</style>
<?php
endif;
}

代码进入事件子主题(或事件主题)的 function.php 文件。经过测试并有效。

没有代码 (正常的 woocommerce 行为):

enter image description here

使用代码 (隐藏属性下拉列表和价格):

enter image description here

It will give you the same UI than simple products

关于php - 隐藏在 Woocommerce 中默认选择的具有唯一变体的可变产品下拉列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52564972/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com