WooCommerce cart-shipping.php 模板 - 单选按钮而不是 select 框

WooCommerce cart-shipping.php template - Radio button instead of select box

我在 WooCommerce 模板中看到默认 cart-shipping.php:

<select name="shipping_method[<?php echo $index; ?>]" data-index="<?php echo $index; ?>" id="shipping_method_<?php echo $index; ?>" class="shipping_method">
    <?php foreach ( $available_methods as $method ) : ?>
        <option value="<?php echo esc_attr( $method->id ); ?>" <?php selected( $method->id, $chosen_method ); ?>><?php echo wp_kses_post( wc_cart_totals_shipping_method_label( $method ) ); ?></option>
    <?php endforeach; ?>
</select>

如何将它从 select 框更改为单选按钮?

可能是,您没有 woocommmerce/cart/cart-shipping.php 的正确模板版本,因为我没有看到您的代码,但看到了这个(已经有单选按钮)。

所以原因可能是您的主题中有定制的旧版 woocommerce 模板。
这是cart-shipping.php实际代码的摘录(模板版本2.5.0):

        <ul id="shipping_method">
            <?php foreach ( $available_methods as $method ) : ?>
                <li>
                    <?php
                        printf( '<input type="radio" name="shipping_method[%1$d]" data-index="%1$d" id="shipping_method_%1$d_%2$s" value="%3$s" class="shipping_method" %4$s />
                            <label for="shipping_method_%1$d_%2$s">%5$s</label>',
                            $index, sanitize_title( $method->id ), esc_attr( $method->id ), checked( $method->id, $chosen_method, false ), wc_cart_totals_shipping_method_label( $method ) );
                        do_action( 'woocommerce_after_shipping_rate', $method, $index );
                    ?>
                </li>
            <?php endforeach; ?>
        </ul>

如您所见,默认情况下有单选按钮。

您应该更新您的主题(以及 WooCommerce 插件)。

参考文献:Github code source - woocommerce/templates/cart/cart-shipping.php