Как найти в плагине нужную форму?
-
Всем снова привет.
Очередной вопрос по PHP языку.
Всё никак не могу добраться до нужной мне формы…
сайт.ru/my-account/edit-address/billing/ — это адрес страницы, где расположена форма. Нахожу в плагине form-edit-adress.php , далее наблюдаю такой код:<?php /** * Edit address form * * @author WooThemes * @package WooCommerce/Templates * @version 2.1.0 */ if ( ! defined( 'ABSPATH' ) ) { exit; // Exit if accessed directly } global $current_user; $page_title = ( $load_address === 'billing' ) ? __( 'Billing Address', 'woocommerce' ) : __( 'Shipping Address', 'woocommerce' ); get_currentuserinfo(); ?> <?php wc_print_notices(); ?> <?php if ( ! $load_address ) : ?> <?php wc_get_template( 'myaccount/my-address.php' ); ?> <?php else : ?> <form method="post"> <h3><?php echo apply_filters( 'woocommerce_my_account_edit_address_title', $page_title ); ?></h3> <!-- Нижний заголовок --> <?php do_action( "woocommerce_before_edit_address_form_{$load_address}" ); ?> <?php foreach ( $address as $key => $field ) : ?> <?php woocommerce_form_field( $key, $field, ! empty( $_POST[ $key ] ) ? wc_clean( $_POST[ $key ] ) : $field['value'] ); ?> <?php endforeach; ?> <?php do_action( "woocommerce_after_edit_address_form_{$load_address}" ); ?> <p> <input type="submit" class="button" name="save_address" value="<?php esc_attr_e( 'Save Address', 'woocommerce' ); ?>" /> <?php wp_nonce_field( 'woocommerce-edit_address' ); ?> <input type="hidden" name="action" value="edit_address" /> </p> </form> <?php endif; ?>
Если я правильно понимаю, то эта функция отвечает за таблицу:
<?php do_action( «woocommerce_before_edit_address_form_{$load_address}» ); ?> , но блин, где редактировать сами поля? К примеру, в моем случае вот так выглядит форма на сайте: http://ipic.lv/i5/e54fd939/0dd24c82522957d.jpg
Где найти поля Имя, Фамилия и т.д?
Плагин: WooCommerce
-
я обычно в таких случаях смотрю исходный код страницы и оформление нужного элемента, а потом ищу где это оформление в плагине или темы генерируется. эти do_action могут формировать одну страницу в десятках разных местах — но в конечном итоге все равно где-то генерится и выводится html-разметка — ее я и ищу.
Странно… В исходной странице такой код:
<div class="page-content default-pagetemp"> <div class="container post-wrap"> <div class="row-fluid"> <div id="content" class="span8"> <div class="post" id="post-8"> <div class="skepost"> <div class="woocommerce"> <form method="post"> <h3>Реквизиты оплаты</h3> <!-- Нижний заголовок --> <p class="form-row form-row form-row-wide validate-required" id="billing_first_name_field"><label for="billing_first_name" class="">Имя <abbr class="required" title="обязательно">*</abbr></label><input type="text" class="input-text " name="billing_first_name" id="billing_first_name" placeholder="" value="" /></p> <p class="form-row form-row form-row-wide validate-required" id="billing_last_name_field"><label for="billing_last_name" class="">Фамилия <abbr class="required" title="обязательно">*</abbr></label><input type="text" class="input-text " name="billing_last_name" id="billing_last_name" placeholder="" value="" /></p><div class="clear"></div> <p class="form-row form-row form-row-wide validate-required validate-email" id="billing_email_field"><label for="billing_email" class="">Email-адрес <abbr class="required" title="обязательно">*</abbr></label><input type="email" class="input-text " name="billing_email" id="billing_email" placeholder="" value="" /></p> <p class="form-row form-row form-row-wide" id="billing_company_field"><label for="billing_company" class="">Название компании</label><input type="text" class="input-text " name="billing_company" id="billing_company" placeholder="" value="Organization" /></p> <p class="form-row form-row form-row-wide validate-phone" id="billing_phone_field"><label for="billing_phone" class="">Телефон</label><input type="tel" class="input-text " name="billing_phone" id="billing_phone" placeholder="" value="" /></p><div class="clear"></div> <p class="form-row form-row form-row-wide address-field update_totals_on_change" id="billing_country_field"><label for="billing_country" class="">Страна</label><select name="billing_country" id="billing_country" class="country_to_state country_select " ><option value="">Выберите страну…</option><option value="AU" >Австралия</option><option value="AT" >Австрия</option><option value="AZ" >Азербайджан</option><option value="AX" >Аландские острова</option><option value="AL" >Албания</option><option value="DZ" >Алжир</option><option value="AI" >Ангилья</option><option value="AO" >Ангола</option><option value="AD" >Андорра</option><option value="AQ" >Антарктика</option><option value="AG" >Антигуа и Барбуда</option><option value="AR" >Аргентина</option><option value="AM" >Армения</option><option value="AW" >Аруба</option><option value="AF" >Афганистан</option><option value="BS" >Багамы</option><option value="BD" >Бангладеш</option><option value="BB" >Барбадос</option><option value="BH" >Бахрейн</option><option value="BY" >Беларусь</option><option value="BZ" >Белиз</option><option value="BE" >Бельгия</option><option value="BJ" >Бенин</option><option value="BM" >Бермуды</option><option value="BG" >Болгария</option><option value="BO" >Боливия</option><option value="BQ" >Бонэйр, Синт-Эстатиус и Саба</option><option value="BA" >Босния и Герцеговина</option><option value="BW" >Ботсвана</option><option value="BR" >Бразилия</option><option value="IO" >Британская территория Индийского океана</option><option value="VG" >Британские Виргинские острова</option><option value="BN" >Бруней</option><option value="BF" >Буркина-Фасо</option><option value="BI" >Бурунди</option><option value="BT" selected='selected'>Бутан</option><option value="VU" >Вануату</option><option value="VA" >Ватикан</option><option value="GB" >Великобритания</option><option value="HU" >Венгрия</option><option value="VE" >Венесуэла</option><option value="TL" >Восточный Тимор</option><option value="VN" >Вьетнам</option><option value="GA" >Габон</option><option value="HT" >Гаити</option><option value="GY" >Гайана</option><option value="GM" >Гамбия</option><option value="GH" >Гана</option><option value="GP" >Гваделупа</option><option value="GT" >Гватемала</option><option value="GN" >Гвинея</option><option value="GW" >Гвинея-Бисау</option><option value="DE" >Германия</option><option value="GG" >Гернси</option><option value="GI" >Гибралтар</option><option value="HN" >Гондурас</option><option value="HK" >Гонконг</option><option value="GD" >Гренада</option><option value="GL" >Гренландия</option><option value="GR" >Греция</option><option value="GE" >Грузия</option><option value="DK" >Дания</option><option value="JE" >Джерси</option><option value="DJ" >Джибути</option><option value="DM" >Доминика</option><option value="DO" >Доминиканская Республика</option><option value="EG" >Египет</option><option value="ZM" >Замбия</option><option value="EH" >Западная Сахара</option><option value="WS" >Западное Самоа</option><option value="ZW" >Зимбабве</option><option value="IL" >Израиль</option><option value="IN" >Индия</option><option value="ID" >Индонезия</option><option value="JO" >Иордания</option><option value="IQ" >Ирак</option><option value="IR" >Иран</option><option value="IE" >Ирландия</option><option value="IS" >Исландия</option><option value="ES" >Испания</option><option value="IT" >Италия</option><option value="YE" >Йемен</option><option value="CV" >Кабо-Верде</option><option value="KZ" >Казахстан</option><option value="KY" >Кайманские острова</option><option value="KH" >Камбоджа</option><option value="CM" >Камерун</option><option value="CA" >Канада</option><option value="QA" >Катар</option><option value="KE" >Кения</option><option value="CY" >Кипр</option><option value="KI" >Кирибати</option><option value="CN" >Китай</option><option value="CC" >Кокосовые (Килинг) острова</option><option value="CO" >Колумбия</option><option value="KM" >Коморы</option><option value="CG" >Конго (Браззавиль)</option><option value="CD" >Конго (Киншаса)</option><option value="CR" >Коста-Рика</option><option value="CI" >Кот-д'Ивуар</option><option value="CU" >Куба</option><option value="KW" >Кувейт</option><option value="KG" >Кыргызстан</option><option value="CW" >Кюрасао</option><option value="LA" >Лаос</option><option value="LV" >Латвия</option><option value="LS" >Лесото</option><option value="LR" >Либерия</option><option value="LB" >Ливан</option><option value="LY" >Ливия</option><option value="LT" >Литва</option><option value="LI" >Лихтенштейн</option><option value="LU" >Люксембург</option><option value="MU" >Маврикий</option><option value="MR" >Мавритания</option><option value="MG" >Мадагаскар</option><option value="YT" >Майотта</option><option value="MO" >Макао специальный административный район, Китай</option><option value="MK" >Македония</option><option value="MW" >Малави</option><option value="MY" >Малайзия</option><option value="ML" >Мали</option><option value="MV" >Мальдивы</option><option value="MT" >Мальта</option><option value="MA" >Марокко</option><option value="MQ" >Мартиника</option><option value="MH" >Маршалловы острова</option><option value="MX" >Мексика</option><option value="FM" >Микронезия</option><option value="MZ" >Мозамбик</option><option value="MD" >Молдова</option><option value="MC" >Монако</option><option value="MN" >Монголия</option><option value="MS" >Монсеррат</option><option value="MM" >Мьянма</option><option value="NA" >Намибия</option><option value="NR" >Науру</option><option value="NP" >Непал</option><option value="NE" >Нигер</option><option value="NG" >Нигерия</option><option value="AN" >Нидерландские Антильские острова</option><option value="NL" >Нидерланды</option><option value="NI" >Никарагуа</option><option value="NU" >Ниуэ</option><option value="NZ" >Новая Зеландия</option><option value="NC" >Новая Каледония</option><option value="NO" >Норвегия</option><option value="AE" >Объединённые Арабские Эмираты</option><option value="OM" >Оман</option><option value="BV" >Остров Буве</option><option value="IM" >Остров Мэн</option><option value="NF" >Остров Норфолк</option><option value="CX" >Остров Рождества</option><option value="SH" >Остров Святой Елены</option><option value="HM" >Остров Херд и острова Макдональд</option><option value="CK" >Острова Кука</option><option value="PK" >Пакистан</option><option value="PW" >Палау</option><option value="PS" >Палестинские территории</option><option value="PA" >Панама</option><option value="PG" >Папуа — Новая Гвинея</option><option value="PY" >Парагвай</option><option value="PE" >Перу</option><option value="PN" >Питкэрн</option><option value="PL" >Польша</option><option value="PT" >Португалия</option><option value="RE" >Реюньон</option><option value="RU" >Россия</option><option value="RW" >Руанда</option><option value="RO" >Румыния</option><option value="SV" >Сальвадор</option><option value="SM" >Сан-Марино</option><option value="ST" >Сан-Томе и Принсипи</option><option value="SA" >Саудовская Аравия</option><option value="SZ" >Свазиленд</option><option value="KP" >Северная Корея</option><option value="SC" >Сейшельские Острова</option><option value="BL" >Сен-Бартелеми</option><option value="SX" >Сен-Мартен (голландская часть)</option><option value="MF" >Сен-Мартен (французская часть)</option><option value="PM" >Сен-Пьер и Микелон</option><option value="SN" >Сенегал</option><option value="VC" >Сент-Винсент и Гренадины</option><option value="KN" >Сент-Китс и Невис</option><option value="LC" >Сент-Люсия</option><option value="RS" >Сербия</option><option value="SG" >Сингапур</option><option value="SY" >Сирия</option><option value="SK" >Словакия</option><option value="SI" >Словения</option><option value="US" >Соединённые Штаты Америки</option><option value="SB" >Соломоновы Острова</option><option value="SO" >Сомали</option><option value="SD" >Судан</option><option value="SR" >Суринам</option><option value="SL" >Сьерра-Леоне</option><option value="TJ" >Таджикистан</option><option value="TW" >Тайвань</option><option value="TH" >Тайланд</option><option value="TZ" >Танзания</option><option value="TC" >Теркс и Кайкос</option><option value="TG" >Того</option><option value="TK" >Токелау</option><option value="TO" >Тонга</option><option value="TT" >Тринидад и Тобаго</option><option value="TV" >Тувалу</option><option value="TN" >Тунис</option><option value="TM" >Туркменистан</option><option value="TR" >Турция</option><option value="UG" >Уганда</option><option value="UZ" >Узбекистан</option><option value="UA" >Украина</option><option value="WF" >Уоллис и Футуна</option><option value="UY" >Уругвай</option><option value="FO" >Фарерские острова</option><option value="FJ" >Фиджи</option><option value="PH" >Филиппины</option><option value="FI" >Финляндия</option><option value="FK" >Фолклендские острова</option><option value="FR" >Франция</option><option value="GF" >Французская Гвиана</option><option value="PF" >Французская Полинезия</option><option value="TF" >Французские южные территории</option><option value="HR" >Хорватия</option><option value="CF" >Центральная Африканская Республика</option><option value="TD" >Чад</option><option value="ME" >Черногория</option><option value="CZ" >Чешская Республика</option><option value="CL" >Чили</option><option value="CH" >Швейцария</option><option value="SE" >Швеция</option><option value="SJ" >Шпицберген и Ян-Майен</option><option value="LK" >Шри-Ланка</option><option value="EC" >Эквадор</option><option value="GQ" >Экваториальная Гвинея</option><option value="ER" >Эритрея</option><option value="EE" >Эстония</option><option value="ET" >Эфиопия</option><option value="ZA" >Южная Африка</option><option value="GS" >Южная Георгия/Сандвичевы острова</option><option value="KR" >Южная Корея</option><option value="SS" >Южный Судан</option><option value="JM" >Ямайка</option><option value="JP" >Япония</option></select><noscript><input type="submit" name="woocommerce_checkout_update_totals" value="Обновить страну" /></noscript></p> <p class="form-row form-row form-row-wide address-field validate-required" id="billing_address_1_field"><label for="billing_address_1" class="">Адрес <abbr class="required" title="обязательно">*</abbr></label><input type="text" class="input-text " name="billing_address_1" id="billing_address_1" placeholder="Улица и т.д." value="" /></p> <p class="form-row form-row form-row-wide address-field" id="billing_address_2_field"><input type="text" class="input-text " name="billing_address_2" id="billing_address_2" placeholder="Подъезд, этаж и т.п. (необязательно)" value="" /></p> <p class="form-row form-row form-row-wide address-field validate-required" id="billing_city_field"><label for="billing_city" class="">Населённый пункт <abbr class="required" title="обязательно">*</abbr></label><input type="text" class="input-text " name="billing_city" id="billing_city" placeholder="Населённый пункт" value="" /></p> <p class="form-row form-row form-row-wide address-field validate-required validate-state" id="billing_state_field"><label for="billing_state" class="">Область/регион <abbr class="required" title="обязательно">*</abbr></label><input type="text" class="input-text " value="" placeholder="" name="billing_state" id="billing_state" /></p> <p class="form-row form-row form-row-wide address-field validate-required validate-postcode" id="billing_postcode_field"><label for="billing_postcode" class="">Почтовый индекс <abbr class="required" title="обязательно">*</abbr></label><input type="text" class="input-text " name="billing_postcode" id="billing_postcode" placeholder="Почтовый индекс" value="" /></p><div class="clear"></div> <p> <input type="submit" class="button" name="save_address" value="Сохранить адрес" /> <input type="hidden" id="_wpnonce" name="_wpnonce" value="3ce3b0f3f5" /><input type="hidden" name="_wp_http_referer" value="/my-account/edit-address/billing/" /> <input type="hidden" name="action" value="edit_address" /> </p> </form> <div id="wcpgsk-dialog-validation-errors" title="Validation errors"> <p><span class="ui-icon ui-icon-alert" style="float: left; margin: 0 7px 20px 0;"></span>Please check the fields marked with a red border. The values do not pass validation.</p> </div>
Скрин: http://ipic.lv/i4/79497cab/e7e6df730388c75.jpg
Искал везде с таким названием функции: billing_first_name — не удалось найти форму… Нахожу что-то на подобии такого:
$.ajax({ url: woocommerce_admin_meta_boxes.ajax_url, data: data, type: 'POST', success: function( response ) { var info = response; if ( info ) { $( 'input#_billing_first_name' ).val( info.billing_first_name ).change(); $( 'input#_billing_last_name' ).val( info.billing_last_name ).change(); $( 'input#_billing_company' ).val( info.billing_company ).change(); $( 'input#_billing_address_1' ).val( info.billing_address_1 ).change(); $( 'input#_billing_address_2' ).val( info.billing_address_2 ).change(); $( 'input#_billing_city' ).val( info.billing_city ).change(); $( 'input#_billing_postcode' ).val( info.billing_postcode ).change(); $( '#_billing_country' ).val( info.billing_country ).change(); $( '#_billing_state' ).val( info.billing_state ).change(); $( 'input#_billing_email' ).val( info.billing_email ).change(); $( 'input#_billing_phone' ).val( info.billing_phone ).change(); } $( 'div.edit_address' ).unblock(); } }); } return false;
С виду вроде то, но всё равно на той странице что мне нужно — не меняется ничего… Как еще можно разыскать подобные формы?
Еще актуально. Всё никак не могу добраться до этой формы… К чему нужно было её так «скрывать»? ..
Если я правильно понимаю, то эта функция отвечает за таблицу:
<?php do_action( «woocommerce_before_edit_address_form_{$load_address}» ); ?>Нет, это действие для вывода дополнительных элементов перед полями адреса.
Поля выводятся в цикле
foreach()
функцией woocommerce_form_field(), а заполняются раньше, в WC_Shortcode_My_Account::edit_address() (строки 147—176).Сам массив полей возвращается функцией WC_Countries::get_address_fields(), изменить его можно с помощью фильтра в строке 971.
- Тема «Как найти в плагине нужную форму?» закрыта для новых ответов.