Как преобразовать этот список параметров из переключателей в выпадающее меню? Ниже приведен код, извлеченный из шаблона single-product.php.

<div class="wcsatt-options-wrapper" <?php echo count( $options ) === 1 ? 'style="display:none;"' : '' ?>><?php

if ( $prompt ) {
    echo $prompt;
} else {
    ?><h3><?php
        _e( 'Choose a subscription plan:', WCS_ATT::TEXT_DOMAIN );
    ?></h3><?php
}

?><ul class="wcsatt-options-product"><?php
    foreach ( $options as $option_id => $option ) {
        ?><li class="<?php echo $option_id !== '0' ? 'subscription-option' : 'one-time-option'; ?>">
            <label>
                <input type="radio" name="convert_to_sub_<?php echo $product->id; ?>" data-custom_data="<?php echo esc_attr( json_encode( $option[ 'data' ] ) ); ?>" value="<?php echo $option_id; ?>" <?php checked( $option[ 'selected' ], true, true ); ?> />
                <?php echo $option[ 'description' ]; ?>
            </label>
        </li><?php
    }
?></ul>
0
Joseph Simile 3 Апр 2017 в 20:02

2 ответа

Лучший ответ

Я получил это на работу! Тем не менее, я уверен, что не должен использовать проверенный параметр с выпадающим меню ... Есть предложения по улучшению?

<ul class="wcsatt-options-product">
    <select name="convert_to_sub_<?php echo $product->id; ?>" data-custom_data="<?php echo esc_attr( json_encode( $option[ 'data' ] ) ); ?>">
    <?php
        foreach ( $options as $option_id => $option ) {
            ?><li class="<?php echo $option_id !== '0' ? 'subscription-option' : 'one-time-option'; ?>">
                <label>
                    <option value="<?php echo $option_id; ?>" <?php checked( $option[ 'selected' ], true, true ); ?>> <?php echo $option[ 'description' ]; ?> </option>
                </label>
            </li><?php
        }
    ?>
    </select>
</ul>
0
Joseph Simile 5 Апр 2017 в 14:54

Я не знаю, какую систему вы используете, или как работает валидация или что-то еще, но что-то вроде этого приблизило бы вас, если бы не было:

 <ul class="wcsatt-options-product">
    <select name="convert_to_sub_<?php echo $product->id; ?>">
<?php
    foreach ( $options as $option_id => $option ) {
        ?><li class="<?php echo $option_id !== '0' ? 'subscription-option' : 'one-time-option'; ?>">
            <option value="<?php echo $option_id; ?>" data-custom_data="<?php echo esc_attr( json_encode( $option[ 'data' ] ) ); ?>" <?php echo($option[ 'selected' ] ? ' selected="selected" : '' ?>><?php echo $option[ 'description' ]; ?></option>                    
        </li><?php
    }
?></select></ul>

По сути, вы просто конвертируете входные элементы в <option> и упаковываете все это в теги <select>.

0
Ty Bailey 3 Апр 2017 в 17:31