복붙노트

[WORDPRESS] WooCommerce 주문 페이지에서 주문 ID와 관련된 사용자 정의 텍스트 필드 만들기

WORDPRESS

WooCommerce 주문 페이지에서 주문 ID와 관련된 사용자 정의 텍스트 필드 만들기

해결법


  1. 1.다음은 사용자 메타 데이터 대신 사용자 지정 메타 데이터를 주문으로 데이터를 저장하는 방법입니다.

    다음은 사용자 메타 데이터 대신 사용자 지정 메타 데이터를 주문으로 데이터를 저장하는 방법입니다.

    add_action( 'woocommerce_order_details_before_order_table', 'add_custom_url_field_to_order' );
    function add_custom_url_field_to_order( $order ) {
        $custom_url = $order->get_meta( 'custom_URL' );
        ?>
        <form method="post">
             <p class="woocommerce-form-row woocommerce-form-row--wide form-row form-row-wide">
                <label for="custom_URL"><?php _e( 'URL', 'woocommerce' ); ?></label>
                <input type="text" name="custom_URL" id="custom_URL" value="<?php echo $custom_url; ?>" />
            </p>
            <input type="hidden" name="the_order_id" value="<?php echo $order->get_id(); ?>" />
            <input type="submit" name="submit-custom_URL" value="<?php _e('RUN', 'woocommerce'); ?>" /><br/>
        </form>
        <?php
    }
    
    // Save the field
    add_action( 'template_redirect', 'save_custom_url_field_from_order' );
    function save_custom_url_field_from_order() {
        if( isset($_POST['custom_URL']) && ! empty($_POST['custom_URL']) && isset($_POST['the_order_id']) ){
            update_post_meta( esc_attr($_POST['the_order_id']), 'custom_URL', sanitize_url( $_POST['custom_URL'] ) );
            wc_add_notice( __("Submitted data has been saved", "woocommerce") );
        }
    }
    

    코드는 Active Child Theme (또는 활성 테마)의 functions.php 파일입니다. 테스트하고 작동합니다.

    이제 각 사용자 정의 URL은 주문과 관련이 있지만 사용자 메타 데이터에는 더 이상 관련이 없습니다.

  2. from https://stackoverflow.com/questions/62779061/in-woocommerce-order-page-create-a-custom-text-field-related-to-order-id by cc-by-sa and MIT license