우커머스 체크아웃에서 기본값을 설정하는 방법
나는 방금 아래 코드를 사용하여 주문 리뷰가 있는 페이지를 만들었습니다.
<form name="checkout" method="post" class="checkout woocommerce-checkout" action="<?php echo esc_url( $get_checkout_url ); ?>" enctype="multipart/form-data">
<h3 id="order_review_heading"><?php _e( 'Your order', 'woocommerce' ); ?></h3>
<?php do_action( 'woocommerce_checkout_before_order_review' ); ?>
<div id="order_review" class="woocommerce-checkout-review-order">
<?php do_action( 'woocommerce_checkout_order_review' ); ?>
</div>
<?php do_action( 'woocommerce_checkout_after_order_review' ); ?></div>
</form>
<?php do_action( 'woocommerce_after_checkout_form', $checkout ); ?>
</div>
에 기본값을 설정했습니다.function.php
다음과 같이
function overridefields($fields)
{
global $wpdb;
session_start();
//print_r($_SESSION);
//$fields['billing']['billing_delivery_date'] = array('label'=>'Delivery Date','Placeholder'=>'Date','required'=>'false','readonly'=>'true');
$select_r = $wpdb->get_results("select * from `register` where `userid`='18'");
//print_r($select_r);
$fields['billing']['billing_first_name']['default']=$_SESSION['f_name'];
$fields['billing']['billing_last_name']['default']=$_SESSION['l_name'];
$fields['billing']['billing_address_1']['default']=$_SESSION['address'];
$fields['billing']['billing_address_2']['default']='';
$fields['billing']['billing_city']['default']=$_SESSION['city'];
//$fields['billing']['billing_state']['default']=$select_r[0]->state;
$fields['billing']['billing_email']['default']=$_SESSION['email'];
$fields['billing']['billing_phone']['default']=$_SESSION['phone'];
$fields['billing']['billing_postcode']['default']=$_SESSION['pincode'];
//$fields['billing']['billing_delivery_date']['default']=$_SESSION['delivdate'];
return $fields;
}
add_filter('woocommerce_checkout_fields','overridefields');
하지만 체크아웃 버튼을 클릭하면 오류가 발생합니다.
Country is a required field. First Name is a required field. Last Name is a required field. Address is a required field. Town / City is a required field. State / County is a required field. Postcode / Zip is a required field. Email Address is a required field. Phone is a required field.
wocommerce 체크아웃 페이지에서 기본값을 설정하려면 어떻게 해야 합니까?
제가 찾은 이 코드는 유용할 수 있습니다.
<?php
add_filter( 'woocommerce_checkout_fields' , 'default_values_checkout_fields' );
function default_values_checkout_fields( $fields ) {
// You can use this for postcode, address, company, first name, last name and such.
$fields['billing']['billing_city']['default'] = 'SomeCity';
$fields['shipping']['shipping_city']['default'] = 'SomeCity';
return $fields;
}
?>
그런 다음 CSS를 사용하여 입력을 숨깁니다.
참고문헌
- 필드 이름은 여기서 찾을 수 있습니다.
- 주 기능 woocmerce_form_field()의 경우
- GitHub 참조
사용하다default
그리고.custom_attributes
청구/청구 주소 및 계정 필드에 사용자 지정 속성을 적용하는 필드 정의: https://github.com/woocommerce/woocommerce/blob/master/includes/wc-template-functions.php#L2510-L2514
add_filter('woocommerce_checkout_fields', 'my_woocommerce_checkout_fields');
add_filter('woocommerce_billing_fields', 'my_woocommerce_billing_fields');
function my_woocommerce_checkout_fields($fields) {
$fields['billing'] = my_woocommerce_billing_fields($fields['billing']);
return $fields;
}
function my_woocommerce_billing_fields($fields) {
// Note: Default value is only used if the user account does
// not have any value for the meta field yet. (Empty value is
// also a value.) Ensure that the value is set correctly.
$fields['billing_city']['default'] = 'SomeCity';
// Disable the field in the form.
// (Note: Does not prevent different values from being posted.)
$fields['billing_city']['custom_attributes']['readonly'] = TRUE;
$fields['billing_city']['custom_attributes']['disabled'] = TRUE;
return $fields;
}
언급URL : https://stackoverflow.com/questions/32092561/how-to-set-default-values-in-woocommerce-checkout
'programing' 카테고리의 다른 글
Swift: 인덱스에서 문자열 배열 바꾸기 (0) | 2023.09.16 |
---|---|
모든 인수를 함수로 전달하는 방법(vs. optional only $args) (0) | 2023.09.16 |
혼합 환경에서의 MariaDB와 MySQL - 마스터/슬레이브 설계의 복제 문제 (0) | 2023.09.16 |
장고 쿼리 집합의 카운트() 대 len() (0) | 2023.09.16 |
mariadb 10.0 이후 jdbc 통신 링크 오류 (0) | 2023.09.16 |