WooCommerce:고객이 떠난 후 돌아올 때 체크아웃 정보를 유지하는 방법은 무엇입니까?
고객이 퇴사 후 입력한 체크아웃 정보를 보관하기 위한 간단한 방법이나 플러그인이 있습니까?
이 플러그인은 「고객이 왔다 갔다 할 때의 필드 정보」를 보관 유지하고 있습니다만, 최근 좋지 않은 리뷰가 많이 있기 때문에, 실전에 사용할 생각은 없습니다.다른 방법이 있나요?
----갱신 ----
아래 코드는 작동하지만 데이터가 전송되는 경우에만 작동합니다.
가능한 유일한 방법은 체크아웃 필드에서 javascript/jQuery 형식의 이벤트를 검출하고 Ajax를 누르는 것입니다.
- 일부 세션 과도 함수에 연결된 Ajax 사용(아래 코드와 같음)
- (Javascript) Web 스토리지 사용: , …
이 스레드에서 체크아웃 데이터를 저장하기 위해 세션 과도기를 사용하는 흥미로운 코드를 발견했습니다.
// this function sets the checkout form data as session transients whenever the checkout page validates
function set_persitent_checkout ( $a ) {
$arr = array();
foreach ( $a as $key => $value )
if ( ! empty($value) )
$arr[$key] = $value;
WC()->session->set( 'form_data', $arr );
return $a;
}
add_action( 'woocommerce_after_checkout_validation', 'set_persitent_checkout' );
// this function hooks into woocommerce_checkout_get_value to substitute standard values with session values if present
function get_persistent_checkout ( $value, $index ) {
$data = WC()->session->get('form_data');
if ( ! $data || empty($data[$index]) )
return $value;
return is_bool($data[$index]) ? (int) $data[$index] : $data[$index];
}
add_filter( 'woocommerce_checkout_get_value', 'get_persistent_checkout', 10, 2 );
// This is a fix for the ship_to_different_address field which gets it value differently if there is no POST data on the checkout
function get_persitent_ship_to_different ( $value ) {
$data = WC()->session->get('form_data');
if ( ! $data || empty($data['ship_to_different_address']) )
return $value;
return is_bool($data['ship_to_different_address']) ? (int) $data['ship_to_different_address'] : $data['ship_to_different_address'];
}
add_action( 'woocommerce_ship_to_different_address_checked', 'get_persitent_ship_to_different' );
이 코드를 에 추가하다functions.php
활성 하위 테마 또는 테마에 있는 파일입니다.
작성자의 설명:
1. 폼 데이터 저장:
제1함수set_persitent_checkout
에 연결하다.woocommerce_after_checkout_validation
.
이 후크가 실행될 때마다 현재 양식 데이터는 WordPress 임시로 저장됩니다.WC_Session_Handler
class(최근 버전 2.5에서 훨씬 더 효율적이 되도록 업데이트됨
2. 새로고침 시 저장된 데이터를 확인합니다.
다음은 후크입니다.woocommerce_checkout_get_value with get_persitent_checkout
이름에서 알 수 있듯이 세션 과도 상태를 확인하고 현재 필드에 일치하는 항목이 있으면 반환합니다.
3. 만들기ship_to_different_address
동작:
유일하게 어려웠던 것은ship_to_different_address
필드: 다른 메서드를 통해 값을 가져옵니다.
이를 피하기 위해 최종 기능이 추가되었습니다.이 기능은 이전 기능과 동일하게 동작하지만 훅은woocommerce_ship_to_different_address_checked
.
바로 그겁니다.체크 아웃 시 필드 업데이트 후 데이터를 저장하면 좋겠지만woocommerce_after_checkout_validation
모든 중요한 지점에서 데이터를 캡처할 수 있을 만큼 충분한 후크 화재를 발생시킵니다.
기능들.Loic TheAztec이 올린 php는 나에게 효과가 없었습니다.
Woocommerce 체크 아웃에서 입력 또는 선택한 모든 것을 기억하는 플러그인을 찾았습니다.출고 필드 및 템플릿에 추가된 커스텀을 포함합니다.
버려진 카트 저장– WooCommerce 라이브 체크아웃 필드 캡처
계정 비밀번호는 체크아웃 중에 생성될 경우 당연히 기억되지 않습니다.
언급URL : https://stackoverflow.com/questions/37459797/woocommerce-how-to-retain-checkout-info-when-client-leaves-then-comes-back
'programing' 카테고리의 다른 글
jQuery Ajax 함수의 전체 양식을 데이터로 전달합니다. (0) | 2023.02.27 |
---|---|
mocha 테스트에서 웹 팩에일리어스 사용 (0) | 2023.02.27 |
사용자 지정 이벤트에서 angular-ui 도구 설명 사용 (0) | 2023.02.27 |
새로운 Facebook 앱 개발자에서 샌드박스 모드를 비활성화하려면 어떻게 해야 합니까? (0) | 2023.02.27 |
js 개체에서 전체 속성을 제거하는 방법이 있습니까? (0) | 2023.02.27 |