programing

WooCommerce:고객이 떠난 후 돌아올 때 체크아웃 정보를 유지하는 방법은 무엇입니까?

cafebook 2023. 2. 27. 22:22
반응형

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_Handlerclass(최근 버전 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

반응형