Как изменить стиль отображения способов доставки в кассе woocommerce - PullRequest
0 голосов
/ 20 сентября 2019

У меня много способов доставки на странице оформления заказа на woocommerce.Они фактически отображаются по умолчанию как входное радио, и я хотел бы отобразить все в одном входе select.

Я обнаружил, что код помещен в theme / woocommerce / cart / cart-shipping.php

Я попытался изменить эту часть кода:

                <?php foreach ( $available_methods as $method ) : ?>
                    <li>
                        <?php
                        if ( 1 < count( $available_methods ) ) {
                            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 />', $index, esc_attr( sanitize_title( $method->id ) ), esc_attr( $method->id ), checked( $method->id, $chosen_method, false ) ); // WPCS: XSS ok.
                        } else {
                            printf( '<input type="hidden" name="shipping_method[%1$d]" data-index="%1$d" id="shipping_method_%1$d_%2$s" value="%3$s" class="shipping_method" />', $index, esc_attr( sanitize_title( $method->id ) ), esc_attr( $method->id ) ); // WPCS: XSS ok.
                        }
                        printf( '<label for="shipping_method_%1$s_%2$s">%3$s</label>', $index, esc_attr( sanitize_title( $method->id ) ), wc_cart_totals_shipping_method_label( $method ) ); // WPCS: XSS ok.
                        do_action( 'woocommerce_after_shipping_rate', $method, $index );
                        ?>
                    </li>
                <?php endforeach; ?>

на эту:

                <select class="form-control" name="shipping_method[0]">
                <?php foreach ( $available_methods as $method ) : ?>
                    <?php
                    if ( 1 < count( $available_methods ) ) {
                        echo '<option value="'. esc_attr( $method->id ) .'">' . wc_cart_totals_shipping_method_label( $method ) . '</option>';
                    }
                    do_action( 'woocommerce_after_shipping_rate', $method, $index );
                    ?>
                <?php endforeach; ?>
                </select>

Это работает, но не обновляет общее количество, показанное в таблице обзора заказов.Я полагаю, что после нажатия на каждом радиовходе вызывается действие, которое обновляет итоговое значение, и я должен изменить его, чтобы прослушать выбор при изменении, но я не могу найти, где он находится.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...