Как я могу отобразить значение optgroups на странице оформления заказа в woocommerce? - PullRequest
0 голосов
/ 30 мая 2019

Этот код работает, но я хочу отобразить значение optgroup select на странице оформления заказа (woocommerce_order_details_after_order_table).

Это код, который я нашел здесь:

   <?php

    add_action('woocommerce_before_order_notes', 
    'custom_checkout_select_field_with_optgroup', 10, 1 );
    function custom_checkout_select_field_with_optgroup( $checkout ) {
        $domain  = 'woocommerce';
        $title   = __("Region", $domain);
        $slug    = sanitize_title($title);
        $default = __("Select your region", $domain);
        $value   = $checkout->get_value($slug);

        // Region option data array with optgroup
        $options = array(
            __("North Region", $domain) => array(
                'region1' => __("Region 1", $domain),
                'region2' => __("Region 2", $domain),
            ),
            __("South Region", $domain) => array(
                'region3' => __("Region 3", $domain),
                'region4' => __("Region 4", $domain),
            )
        );

        // The field
        echo '<p class="form-row form-row-wide '.$slug.'-dropdown" 
        id="'.$slug.'_field" data-priority="">
        <label for="'.$slug.'" class="">'.$title.'</label>
        <span class="woocommerce-input-wrapper">
        <select name="'.$slug.'" id="'.$slug.'" class="select " data- 
        placeholder="" autocomplete="'.$slug.'">
        <option value="">'.$default.'</option>';

        // Loop through "optgroup"
        foreach( $options as $optgroup_label => $optgroup_options ) {
            echo '<optgroup label="'.$optgroup_label.'">';
            // Loop through "options" in the "optgroup"
            foreach( $optgroup_options as $key => $label ) {
                $selected = $value === $key ? ' selected="selected"': '';
                echo '<option 
                value="'.$key.'"'.$selected.'>'.$label.'</option>';
            }
            echo '</optgroup>';
        }

        echo '</select></span></p>';
    }

  ?>
...