в некотором затруднении здесь. Я уже пару дней пытаюсь получить свои данные, которые я собрал из пользовательского поля в регистрационной форме woocommerce, чтобы вставить в метаданные пользователя в базе данных. Код для формы:
//Addition of morello Account Number to reg page
add_action( 'woocommerce_register_form', 'add_register_form_field' );
function add_register_form_field(){
woocommerce_form_field(
'morello_account_number',
array(
'type' => 'text',
'required' => true, // required field?
'label' => 'morello Account Number:'
),
( isset($_POST['morello_account_number']) ? $_POST['morello_account_number'] : '' )
);
}
add_action( 'woocommerce_created_customer', 'save_register_fields' );
function save_register_fields( $customer_id ){
if ( isset( $_POST['morello_account_number'] ) ) {
update_user_meta( $customer_id, 'morello_account_number', wc_clean( $_POST['morello_account_number'] ) );
}
}
Теперь я хочу взять данные из таблицы и отобразить их на странице заказа woocommerce в отдельном столбце, чтобы я мог увидеть номер morello, не имея искать информацию о клиенте вручную. Вот мой код для этого:
/**
* Add columns
*/
function morello_account_number_column( $columns ) {
$columns['morello_account_number'] = "morello Account Number";
return $columns;
}
add_filter('manage_edit-shop_order_columns', 'morello_account_number_column', 10, 1 );
/**
* Populate columns
*/
function morello_placeholder( $column, $post_id ) {
if( $column == 'morello_account_number' ) {
// https://developer.wordpress.org/reference/functions/get_post_meta/
$a_a_n = get_user_meta( $user_id, 'morello_account_number', true );
// Value is found
if ( !empty($a_a_n) ) {
echo $a_a_n;
} else {
echo 'something else';
}
}
}
add_filter( 'manage_shop_order_posts_custom_column', 'morello_placeholder', 10, 2 );
Это работает как задумано, но продолжает отображать цитату «что-то еще» - код создает столбец в правильном месте, но не заполняет его morello_account_number. Я что-то пропустил? Помощь будет очень признательна - заранее спасибо.