0
A
回答
0
function wc_dropdown_variation_attribute_options($args = array()) {
global $product;
$variations = $product->get_available_variations();
$args = wp_parse_args(apply_filters('woocommerce_dropdown_variation_attribute_options_args', $args), array(
'options' => false,
'attribute' => false,
'product' => false,
'selected' => false,
'name' => '',
'id' => '',
'class' => '',
'show_option_none' => __('Choose an option', 'woocommerce'),
));
$options = $args['options'];
$product = $args['product'];
$attribute = $args['attribute'];
$name = $args['name'] ? $args['name'] : 'attribute_' . sanitize_title($attribute);
$id = $args['id'] ? $args['id'] : sanitize_title($attribute);
$class = $args['class'];
if (empty($options) && ! empty($product) && ! empty($attribute)) {
$attributes = $product->get_variation_attributes();
$options = $attributes[ $attribute ];
}
$html = '<select id="' . esc_attr($id) . '" class="' . esc_attr($class) . '" name="' . esc_attr($name) . '" data-attribute_name="attribute_' . esc_attr(sanitize_title($attribute)) . '">';
if ($args['show_option_none']) {
$html .= '<option value="">' . esc_html($args['show_option_none']) . '</option>';
}
if (! empty($options)) {
/*if ($product && taxonomy_exists($attribute)) {
// Get terms if this is a taxonomy - ordered. We need the names too.
$terms = wc_get_product_terms($product->get_id(), $attribute, array('fields' => 'all'));
foreach ($terms as $term) {
if (in_array($term->slug, $options)) {
$html .= '<option value="' . esc_attr($term->slug) . '" ' . selected(sanitize_title($args['selected']), $term->slug, false) . '>' . esc_html(apply_filters('woocommerce_variation_option_name', $term->name)) . '</option>';
}
}
} else {*/
foreach ($options as $option) {
foreach ($variations as $variation) {
if($variation['attributes'][$name] == $option) {
$stock = esc_html($variation['max_qty']);
}
}
if($stock == 0) {
$stock_text = ' - (Out of Stock)';
$class = 'option-out-of-stock';
$disabled = 'disabled';
} elseif ($stock < 5) {
$stock_text = ' - Only ' . $stock . ' left!';
$class= 'option-hurry';
$disabled = '';
} elseif ($stock < 6) {
$stock_text = ' - Only a few left!';
$class = 'option-few';
$disabled = '';
} else {
$stock_text = ' - (In Stock)';
$class = '';
$disabled = '';
}
// This handles < 2.4.0 bw compatibility where text attributes were not sanitized.
$selected = sanitize_title($args['selected']) === $args['selected'] ? selected($args['selected'], sanitize_title($option), false) : selected($args['selected'], $option, false);
$html .= '<option value="' . esc_attr($option) . '" ' . $selected . ' class="'.$class.'" '.$disabled.'>' . $option . $stock_text .'</option>';
//}
}
}
$html .= '</select>';
echo apply_filters('woocommerce_dropdown_variation_attribute_options_html', $html, $args);
}
相关问题
- 1. Woocommerce产品页面未显示产品
- 2. woocommerce显示特定页面的产品
- 3. WooCommerce - 从产品页面删除页脚
- 4. Woocommerce - 从商店页面中删除可用产品库存号
- 5. 如何编辑woocommerce产品页面?
- 6. Woocommerce产品页面定制
- 7. Woocommerce - 产品描述页面
- 8. Woocommerce可变产品页面
- 9. 如何从Woocommerce的商店页面中删除产品/库存盘点?
- 10. Woocommerce - 只显示产品库存
- 11. 如何分离woocommerce的库存产品和缺货产品
- 12. 在Woocommerce产品页面显示更多产品元信息
- 13. 如何显示在WordPress woocommerce特定页面上的产品呢?
- 14. 从WooCommerce产品页面删除不需要的JavaScript产品页面
- 15. Woocommerce - 从产品类别页面中删除产品缩略图
- 16. 如何在单个产品页面上显示woocommerce产品标签。
- 17. (Shopify)如何显示产品页面上的库存水平?
- 18. 如何删除WordPress的Woocommerce从产品分类页面价格
- 19. Woocommerce - 在订单页面中显示产品摘录页面
- 20. 仅从产品详细页面隐藏jQuery库Wordpress(WooCommerce)
- 21. Woocommerce - 获得产品页面的运费
- 22. WooCommerce - 获取产品页面的类别
- 23. WordPress的WooCommerce产品页面模板
- 24. 删除woocommerce产品页面的列
- 25. Woocommerce产品的变化:的“库存”
- 26. Woocommerce-重置产品页面上的产品缩略图大小
- 27. Woocommerce产品分类描述的产品页面
- 28. WooCommerce - 确定当前单个产品页面的产品类别
- 29. 限制产品类别为'x'的产品页面WooCommerce
- 30. WPML + Woocommerce产品404页面错误
检查这个https://gist.github.com/mujuonly/7c1393f791fdeb261c0225a32cec574e –
@MujeebuRahman YOU ARE生命的救星!!!! OMG <3我正在寻找这个解决方案3周!谢谢!谢谢!谢谢!谢谢! –