• Как можно удалить лишние поля в форме Платёжного адреса и поменять их порядок в Аккаунте? Знаю как это делается в оформлении, но как поменять именно в аккаунте — не могу нигде найти примеров. В шаблоне form-edit-address.php поля выводятся циклом. Не понимаю как влиять на это. Помогите, пожалуйста

Просмотр 8 ответов — с 1 по 8 (всего 8)
  • спасибо за наводку на плагин, в идеале хотелось бы решить вопрос без установки плагина, прописать функцию по аналогии с тем, как это делается для оформления. Нет ли аналогичного способа для полей в аккаунте?

    unset($fields['billing']['billing_company']);

    е хотелось бы решить вопрос без установки плагина

    плагинофобия обычно лечится понимание процесса

    если вопрос решается парой строчек кода, то плагин ставить нецелесообразно. А вот если это острая потребность в доп.функционале, то конечно ничего страшного в плагинах нет.

    Но мне удалось самостоятельно решить вопрос. Если кому-то пригодится, то убрать лишние поля в аккаунте в форме редактирования платёжного адреса можно следующим образом:

    function remove_adress_form_fields($fields) {
    
        unset( $fields ['company'] );
        unset( $fields ['address_2'] );
        unset( $fields ['postcode'] );
        unset( $fields ['state'] );
    
        return $fields;
    }
    add_filter( 'woocommerce_default_address_fields', remove_adress_form_fields' );

    А вот вопрос с сортировкой пока не решила. Данный код почему-то не срабатывает в аккаунте.

    $fields["email"]["priority"] = 3;

    Появится задача сменить тему на другую и сразу же окажется что «пара строчек кода» — была самая плохая идея, т.к. теперь придется половину делать заново.
    И это — самая очевидная причина глупости фразы «если вопрос решается парой строчек кода, то плагин ставить нецелесообразно.»

    мне нужно натянуть макет и кастомизировать конкретную тему, а не разработать плагин. Поэтому то, что вы пишите в моём случае не актуально. Смена темы предполагает другой макет и внешний вид. Соответственно мои строчки кода там не нужны будут в принципе.

    Соответственно мои строчки кода там не нужны будут в принципе.

    хорошо-хорошо, главное не волнуйтесь.
    ну и мои слова на всякий случай запомните.

    я не волнуюсь) с чего бы? функции хорошая штука, когда чего-то не хватает.

    По поводу сортировки. Вдруг кому пригодится! Оказалось сортировка и настройка основных полей, а email и phone в аккаунте делается отдельным хуком.

    //Меняем основные поля
    add_filter( 'woocommerce_default_address_fields', 'rpf_edit_default_address_fields', 100, 1 );
    function rpf_edit_default_address_fields($fields) {
    
      $fields['first_name']['priority'] = 20;
      $fields['last_name']['priority'] = 30;
      $fields['address_1']['priority'] = 50;
      $fields['city']['priority'] = 40;
      $fields['city']['label'] = 'Город';
    
      return $fields;
    }
    
    //Отдельно меняем phone и email
    add_filter(  'woocommerce_billing_fields', 'custom_billing_fields', 20, 1 );
    function custom_billing_fields( $fields ) {
    
        unset($fields['billing_email']);
        $fields['billing_phone']['priority'] = 40;
    
        return $fields;
    }
    • Ответ изменён 2 года, 3 месяца назад пользователем elena11.
Просмотр 8 ответов — с 1 по 8 (всего 8)
  • Тема «Изменить платёжный адрес? Woocommerce» закрыта для новых ответов.