我正在尝试使用以下答案自定义产品页面上的变化下拉菜单:
在Woocommerce的可变产品下拉列表中添加变量价格
function wiz_rebuild_variation_dropdown( $html, $args ) {
// Only if there is a unique variation attribute (one dropdown)
if( sizeof($args['product']->get_variation_attributes()) == 1 ) :
$options = $args['options'];
$product = $args['product'];
$attribute = $args['attribute'];
$show_option_none = $args['show_option_none'] ? true : false;
$show_option_none_text = $args['show_option_none'] ? $args['show_option_none'] : __( 'Choose an option', 'woocommerce' );
if ( empty( $options ) && ! empty( $product ) && ! empty( $attribute ) ) {
$attributes = $product->get_variation_attributes();
$options = $attributes[ $attribute ];
}
// Build the Select container
$html = '<select id="something">';
$html .= '<option value="something">' . esc_html( $show_option_none_text ) . '</option>';
if ( ! empty( $options ) ) {
foreach ( $options as $option ) {
// print_r($option);
$html .= '<option value="'. esc_html( $option ) . '">something</option>';
}
}
// Close the Select container
$html .= '</select>';
endif; // More than one attributes (multiple pulldowns) - code not executed
return $html;
}
add_filter( 'woocommerce_dropdown_variation_attribute_options_html', 'wiz_rebuild_variation_dropdown', 10, 2);
不知何故下拉菜单将不会显示多个标签。我已经检查了数组,有4个结果(print_r在foreach)。如果我注释掉"Choose an option"选项,foreach中的第一个结果将显示,但其他三个结果不显示。附加$html变量是否有问题?
我在尝试:-/时感到头晕有人能看出我做错了什么吗?
欢呼,马克。
顺便说一句,这是我第一次在这个拯救了我很多次生命的了不起的平台上发帖。感谢大家多年来的大力帮助!
所以我找到了问题所在。如果在SELECT标签中没有正确的name属性,这个下拉菜单将无法运行。
通过捕获像原始示例(参见URL):
$name = $args['name'] ? $args['name'] : 'attribute_' . sanitize_title( $attribute );
name="' . esc_attr( $name ) . '"
脚本自动将所需的类名添加到选项标签和图像/价格更改功能。
谢谢大家的提示!讨论. .今天迈出了一步:)