복붙노트

[WORDPRESS] Woocommerce 유럽 GDPR 추가로 체크 아웃 확인 확인란

WORDPRESS

Woocommerce 유럽 GDPR 추가로 체크 아웃 확인 확인란

해결법


  1. 1.업데이트 (2018 월 - 코드 향상)

    업데이트 (2018 월 - 코드 향상)

    다음 코드는 체크 아웃 페이지에서 계약 조건에 따라, 새로운 필수 유럽 GDPR 개인 정보 보호 정책에 대한 추가 검증 체크 박스를 추가합니다 :

    // Add terms and policy check box in checkout page
    add_action( 'woocommerce_checkout_after_terms_and_conditions', 'add_terms_and_policy', 20 );
    function add_terms_and_policy() {
        $domain = 'woocommerce';
    
        $gdpr_private_policy_link = sprintf( '<a href="%s" target="_blank">%s</a>',
            home_url("/protest/privacy-policy/"), // The button link to the GDPR privacy policy page
            __( "Privacy Policy", $domain )       // The button text
        );
    
        woocommerce_form_field( 'gdpr_terms', array(
            'type'          => 'checkbox',
            'class'         => array( 'terms gdpr_terms' ),
            'input_class'   => array('woocommerce-form__input-checkbox'),
            'label_class'   => array('woocommerce-form__label-for-checkbox'),
            'label'         => '<span>' . sprintf(
                __( "I have read and accept the %s and understand how you manage my Data under GDPR", $domain ),
                $gdpr_private_policy_link
            ) . '</span>',
            'required'      => true,
        ), '');
    }
    
    // Validate required GDPR private policy checkbox
    add_action( 'woocommerce_after_checkout_validation', 'terms_and_policy_validation', 20, 2 );
    function terms_and_policy_validation( $data, $errors ) {
        if ( ! isset( $_POST['gdpr_terms'] ) ){
            $domain = 'woocommerce';
    
            $gdpr_text = sprintf(
                __( "I have read and accept the %s and understand how you manage my Data under GDPR", $domain ),
                __( "Privacy Policy", $domain )
            );
    
            $errors->add( 'gdpr_terms', sprintf( __( 'You must accept "%s".', $domain ), $gdpr_text ), 'error' );
        }
    }
    

    코드는 function.php의 활성 자식 테마의 파일 (또는 활성 테마)에 간다. 테스트 및 작동합니다.

    선택하지 않은 경우, 고객이 체크 아웃을 피하는이 오류 메시지가 표시됩니다 :

  2. from https://stackoverflow.com/questions/49494935/european-gdpr-additional-checkout-validation-checkbox-in-woocommerce by cc-by-sa and MIT license