2016-06-13 6 views
0

woocommerce_checkout_fields 필터 후크를 사용하여 동시에 여러 체크 아웃 필드의 "필수"속성을 비활성화하려고했습니다. 성공하지 못했습니다.WooCommerce : 필터 후크로 체크 아웃 필드 사용 안 함

플러그인도 제대로 작동하지 않습니다. 내 코드 :

// Hook in 
add_filter('woocommerce_checkout_fields' , 'custom_override_checkout_fields'); 

// Our hooked in function - $fields is passed via the filter! 
function custom_override_checkout_fields($fields) { 
$fields['billing']['billing_address_1']['required'] = false; 
$fields['billing']['billing_address_2']['required'] = false; 

$fields['billing']['billing_postcode']['required'] = false; 
$fields['billing']['billing_city']['required'] = false; 
$fields['billing']['billing_phone']['required'] = false; 

    return $fields; 
} 

무엇이 잘못 되었나요?
어떻게해야합니까?

답변

8

는이 목적을 위해 unset() 기능을 사용할 필요가 당신은 할 - 그것에게 수있는이 방법 :

add_filter('woocommerce_checkout_fields' , 'custom_override_checkout_fields'); 

function custom_override_checkout_fields($fields) { 
    unset($fields['billing']['billing_address_1']); 
    unset($fields['billing']['billing_address_2']); 
    unset($fields['billing']['billing_postcode']); 
    unset($fields['billing']['billing_city']); 
    unset($fields['billing']['billing_phone']); 
    return $fields; 
} 

당신은 활성 자식 테마 나에 위치한 function.php 파일에이 코드를 붙여해야합니다을 테마.


당신은 업데이 트하여 질문을 변경 한 : 당신은이

: 여기가 (당신의 갱신에 관한) 옵션 주소 필드를 만들기 내 새 응답

입니다 그 목적을 위해 다른 필터 훅을 사용한다.

1) 결제 필드 : 배송 필드

add_filter('woocommerce_billing_fields', 'wc_optional_billing_fields', 10, 1); 
function wc_optional_billing_fields($address_fields) { 
    $address_fields['billing_address_1']['required'] = false; 
    $address_fields['billing_address_2']['required'] = false; 
    $address_fields['billing_postcode']['required'] = false; 
    $address_fields['billing_city']['required'] = false; 
    $address_fields['billing_phone']['required'] = false; 
    return $address_fields; 
} 

2)

add_filter('woocommerce_shipping_fields', 'wc_optional_shipping_fields', 10, 1); 
function wc_optional_shipping_fields($address_fields) { 
    $address_fields['shipping_phone']['required'] = false; 
    return $address_fields; 
} 

어드레스 필드를 만드는 2 개 가지 필터 후크있다 필수 :

위의 동일한 후크와 함수를 사용하여 각 필드를 false에서 true으로 변경할 수 있습니다.


당신은 당신의 활성 자식 테마 또는 테마에 위치한 function.php 파일에이 코드를 붙여해야합니다.

참조 : Customizing checkout fields using hooks

+0

당신은 내 질문을 오해. 여러 필드를 "필요하지 않음"으로 설정해야 완전히 비활성화 할 수 있습니다. 그건 실제로 잘 작동합니다. – Bernhard

관련 문제