Пользовательское поле для выставления счетов Woocommerce (также сохраняется, отображается в фоновом режиме и по электронной почте) - PullRequest
1 голос
/ 07 февраля 2020

Я ищу идеальное все в решении. Я хочу добавить пользовательские поля для выставления счетов в Woocommerce на основе идентификатора пользователя. Также я хочу, чтобы это поле отображалось во внутренней части, сохранялось и во внешней части в профиле пользователя и в письмах.

До сих пор с кодом ниже он только показывает поле на переднем конце

/* Debiteutnummer front-end*/
add_filter('woocommerce_billing_fields', 'custom_woocommerce_billing_fields');
function custom_woocommerce_billing_fields($fields) {
    $fields['debiteurnummer'] = array(
        'label' => __('debiteurnummer'), // Add custom field label
        'placeholder' => _x('Debiteurnummer', 'placeholder', 'woocommerce'), // Add custom field placeholder
        'required' => true, // if field is required or not
        'clear' => false, // add clear or not
        'type' => 'text', // add field type
        'class' => array('my-css'),    // add class name
        'priority' => '150'
    );
    return $fields;
}

/* Debiteutnummer back-end*/

add_action( 'woocommerce_checkout_update_order_meta', 'custom_save_new_checkout_field' );

function custom_save_new_checkout_field( $order_id ) { 
    if ( $_POST['debiteurnummer'] ) update_post_meta( $order_id, '_debiteurnummer', esc_attr( $_POST['debiteurnummer'] ) );
}

/* Debiteutnummer on order*/

add_action( 'woocommerce_admin_order_data_after_billing_address', 'custom_show_new_checkout_field_order', 10, 1 );

function custom_show_new_checkout_field_order( $order ) {    
   $order_id = $order->get_id();
   if ( get_post_meta( $order_id, '_debiteurnummer', true ) ) echo '<p><strong>Debiteurnummer:</strong> ' . get_post_meta( $order_id, '_debiteurnummer', true ) . '</p>';
}

/* Debiteutnummer on email*/

add_action( 'woocommerce_email_after_order_table', 'custom_show_new_checkout_field_emails', 20, 4 );

function custom_show_new_checkout_field_emails( $order, $sent_to_admin, $plain_text, $email ) {
    if ( get_post_meta( $order->get_id(), '_debiteurnummer', true ) ) echo '<p><strong>License Number:</strong> ' . get_post_meta( $order->get_id(), '_debiteurnummer', true ) . '</p>';
}

Есть ли у кого-нибудь решение или кто-то видит, что я делаешь неправильно?

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