Добавьте дополнительные поля для пользователя-администратора в разделе доставки клиентов в Woocommerce - PullRequest
0 голосов
/ 04 октября 2018

В woocommerce, после создания и регистрации некоторых пользовательских полей учетной записи в пользовательском php-файле, используя следующий код:

<label for="reg_shipping_phone"> ... </label>
<input  class="..." id="reg_shipping_phone" name="shipping_phone" 
        type="tel" pattern="[a-z0-9.-]{6,40}"
        title=" ... " placeholder=" ... "
        value="<?php esc_attr_e( $_POST['shipping_phone'] ); ?>" />

и в файле function.php моей темы:

//save on admin/&frontend on change
add_action( 'personal_options_update', 'woo_save_extra_register_fields' );    
add_action( 'woocommerce_save_account_details', 'woo_save_extra_register_fields' );

// Save extra registration fields data on from
add_action( 'woocommerce_created_customer', 'woo_save_extra_register_fields' );
function woo_save_extra_register_fields( $customer_id )
{
if( isset( $_POST['shipping_phone'] ) ) {
        update_user_meta( $customer_id, 'shipping_phone',  $_POST['shipping_phone'] );
    }
}

Я бы хотел, чтобы это поле "Телефон для доставки" было введено в правильном положении на страницах профиля внутреннего пользователя в таблице раздела "Адрес доставки клиента"

Как вставить дополнительные поля в поле "Доставка клиента"адрес таблицы разделов?

Например, я пробовал следующее * (но 11,5 неверно ...) *:

add_action( 'show_user_profile', 'extra_profile_fields',***11,5*** );
add_action( 'edit_user_profile', 'extra_profile_fields',***11,5*** );

function extra_profile_fields( $user ) { ?>


    <h3>NAME OF TABLE</h3>

    <table class="form-table">

        <tr>
            <th><label for="shipping_phone">SHIPPING PHONE</label></th>

            <td>
                <input type="text" name="shipping_phone" id="shipping_phone" value="<?php echo esc_attr(  $user->shipping_phone); ?>" class="regular-text" />
            </td>
        </tr>
>

    </table>
<?php }

Любая помощь приветствуется.

1 Ответ

0 голосов
/ 04 октября 2018

Если вы хотите включить свое пользовательское поле «Телефон для отправки» в профиле внутреннего пользователя в разделе «Адрес доставки клиента», вместо этого вы будете использовать следующее:

add_filter( 'woocommerce_customer_meta_fields', 'filter_add_customer_meta_fields', 10, 1 );
function filter_add_customer_meta_fields( $args ) {
    $args['shipping']['fields']['shipping_phone'] = array(
        'label'       => __( 'Shipping phone', 'woocommerce' ),
        'description' => '',
    );
    return $args;
}

Код входит в файл function.phpвашей активной детской темы (или активной темы).Протестировано и работает.

enter image description here

Этот небольшой фрагмент кода сделает все.Если вы измените значение в этом поле «Телефон для доставки», оно будет обновлено без дополнительного кода.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...