Я пытаюсь обновить этот полезный фрагмент кода от bboomer (https://businessbloomer.com/woocommerce-display-save-wp-user-field-e-g-user_url-checkout/)), чтобы показать и сохранить страницу профиля социальной сети пользователя при оформлении заказа на woocommerce. URL профиля сохраняется в метаданных пользователя при входе в систему с помощью подключаемого модуля социальной регистрации ибыло бы замечательно, если бы я мог заставить его отображаться на странице оформления заказа. Независимо от того, что я делаю, я не могу заставить его работать.
Не знаю, будет ли это полезным, но с помощью метки JSM Show User Meta я вижуследующий в профиле пользователя, когда пользователь входит в систему с Твиттером:
ПОКАЗАТЬ ПОЛЬЗОВАТЕЛЯ META
КЛЮЧ
_wc_social_login_twitter_profile
ЗНАЧЕНИЕ
array (
0 =>
array (
'identifier' => 720540,
'web_site_url' => NULL,
'profile_url' => 'http://twitter.com/usersprofilepage',
'photo_url' => 'http://pbs.twimg.com/profile_images/710794325690464512/pvqrktNk.jpg',
'display_name' => 'john doe',
'description' => '',
'first_name' => 'John',
'last_name' => 'Doe',
'gender' => NULL,
'language' => NULL,
'age' => NULL,
'birth_day' => NULL,
'birth_month' => NULL,
'birth_year' => NULL,
'email' => '',
'email_verified' => '',
'phone' => NULL,
'address' => NULL,
'country' => NULL,
'region' => 'London',
'city' => NULL,
'zip' => NULL,
'job_title' => NULL,
'organization_name' => NULL,
),
)
Вот где я 'm at.
// ------------------------
// 1. Display field @ Checkout
add_action( 'woocommerce_after_checkout_billing_form',
'bbloomer_add_user_field_to_checkout' );
function bbloomer_add_user_field_to_checkout( $checkout ) {
$current_user = wp_get_current_user();
$saved_url->profile_url;
woocommerce_form_field( 'profile_url', array(
'type' => 'text',
'class' => array('profile_url form-row-wide'),
'label' => __('Profile URL'),
'placeholder' => __('http://socialnetwork.com/yourprofile'),
'required' => false
),
$saved_url );
}
// ------------------------
// 2. Save Field Into User Meta
add_action( 'woocommerce_checkout_update_user_meta',
'bbloomer_checkout_field_update_user_meta' );
function bbloomer_checkout_field_update_user_meta( $user_id ) {
if ( $user_id && $_POST['profile_url'] ) {
// once again, use "profile_url"
$args = array(
'ID' => $user_id,
'profile_url' => esc_attr( $_POST['profile_url'] )
);
wp_update_user( $args );
}
}
Пожалуйста, дайте мне знать, где я иду не так!
Если возможно, чтобы это работало, что мне нужно сделать, чтобы изменить код, чтобы онПоказывает и сохраняет URL профиля независимо от того, с какой социальной учетной записью они пользуются, например, Twitter, Facebook, LinkedIn или Instagram.
Большое спасибо!