programing

관리자 편집 순서로 표시되는 값을 WooCommerce 체크아웃에 사용자 지정 확인란 추가

telecom 2023. 11. 1. 22:07
반응형

관리자 편집 순서로 표시되는 값을 WooCommerce 체크아웃에 사용자 지정 확인란 추가

추가하려고 합니다.<input type="checkbox">어떤 값이 우커머스 백엔드에도 나타나는지, 그래서 나는 마지막에 고객이 박스를 체크했는지 아닌지 알 수 있습니다.

확인란은 결제 방법 아래에 있어야 합니다.

관리자 편집 순서에 어떤 값이 나타나는지 우커머스 체크아웃에서 커스텀 체크박스를 추가할 수 있나요?

3단계로 수행할 수 있습니다.

  1. 결제 방법 아래에 사용자 지정 확인란 필드 추가
  2. 주문 메타에서 선택한 사용자 지정 확인란 필드 저장
  3. 주문 편집 페이지에서 선택한 사용자 정의 확인란 필드 표시

코드는 다음과 같습니다.

// Add custom checkout field: woocommerce_review_order_before_submit
add_action( 'woocommerce_review_order_before_submit', 'my_custom_checkout_field' );
function my_custom_checkout_field() {
    echo '<div id="my_custom_checkout_field">';

    woocommerce_form_field( 'my_field_name', array(
        'type'      => 'checkbox',
        'class'     => array('input-checkbox'),
        'label'     => __('My custom checkbox'),
    ),  WC()->checkout->get_value( 'my_field_name' ) );
    echo '</div>';
}

// Save the custom checkout field in the order meta, when checkbox has been checked
add_action( 'woocommerce_checkout_update_order_meta', 'custom_checkout_field_update_order_meta', 10, 1 );
function custom_checkout_field_update_order_meta( $order_id ) {

    if ( ! empty( $_POST['my_field_name'] ) )
        update_post_meta( $order_id, 'my_field_name', $_POST['my_field_name'] );
}

// Display the custom field result on the order edit page (backend) when checkbox has been checked
add_action( 'woocommerce_admin_order_data_after_billing_address', 'display_custom_field_on_order_edit_pages', 10, 1 );
function display_custom_field_on_order_edit_pages( $order ){
    $my_field_name = get_post_meta( $order->get_id(), 'my_field_name', true );
    if( $my_field_name == 1 )
        echo '<p><strong>My custom field: </strong> <span style="color:red;">Is enabled</span></p>';
}

코드가 작동합니다.활성 하위 테마(또는 테마)의 php 파일 또는 플러그인 파일에 있습니다.

WooCommerce 3+에서 테스트되었으며 작동합니다.확인란을 선택하면 주문 편집 페이지에서 청구 주소 아래에 사용자 정의 텍스트가 표시됩니다.

언급URL : https://stackoverflow.com/questions/45905237/add-a-custom-checkbox-in-woocommerce-checkout-which-value-shows-in-admin-edit-or

반응형