• Всем снова привет.
    Очередной вопрос по 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

Просмотр 4 ответов — с 1 по 4 (всего 4)
  • я обычно в таких случаях смотрю исходный код страницы и оформление нужного элемента, а потом ищу где это оформление в плагине или темы генерируется. эти 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="">Выберите страну&hellip;</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;

    С виду вроде то, но всё равно на той странице что мне нужно — не меняется ничего… Как еще можно разыскать подобные формы?

    Еще актуально. Всё никак не могу добраться до этой формы… К чему нужно было её так «скрывать»? ..

    Модератор Sergey Biryukov

    (@sergeybiryukov)

    Live and Learn

    Если я правильно понимаю, то эта функция отвечает за таблицу:
    <?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.

Просмотр 4 ответов — с 1 по 4 (всего 4)
  • Тема «Как найти в плагине нужную форму?» закрыта для новых ответов.