foreach循环不显示所有结果(woocommerce变异下拉)



我正在尝试使用以下答案自定义产品页面上的变化下拉菜单:

在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 );

并将其添加到SELECT:

name="' . esc_attr( $name ) . '"

脚本自动将所需的类名添加到选项标签和图像/价格更改功能。

谢谢大家的提示!讨论. .今天迈出了一步:)

相关内容

  • 没有找到相关文章