WooCommerce Ödeme Sayfası Alan Değerlerini Koruma

WooCommerce Ödeme Sayfası Alan Değerlerini Koruma

Çıkış yapmış bir kullanıcı olarak WooCommerce Ödeme Sayfası’na gidin. Fatura adını, soyadını, adresini, e-postasını ve telefonunu doldurun. Fikrini değiştir ve Sepete geri dön. Ödeme Sayfası’na dönün. Fatura adı, soyadı, e-posta ve telefon (temelde adres dışında her şey) gitti!

Ama bu can sıkıcı WooCommerce kusuru birkaç satır kodla ortadan kalkmak üzere. Ödeme sayfasını yeniden yükleyin veya daha sonra geri dönün bilgileriniz orada olmaya devam edecek (tabi ki önbelleğinizi/çerezlerinizi temizlemediğiniz ve WooCommerce oturumunun süresi dolmadığı sürece).

WooCommerce Ödeme sayfasındaki oldukça sinir bozucu bir şey, sayfayı yeniden yüklediğinizde ve görünürde bir sebep olmadan Faturalama / Gönderim verilerinizi kaybetmenizdir. Bu kod parçacığı şimdi bu verileri kaydedecek ve bir sonraki yeniden yüklemede sizin için saklayacak!
				
					/**
 * @snippet       Alan Değerlerini Koru | WooCommerce Ödeme Sayfası
 * @author        Kastabala IT
 * @testedwith    WooCommerce 6
 */
 
add_action( 'woocommerce_checkout_update_order_review', 'kastabalait_save_checkout_values', 9999 );
 
function kastabalait_save_checkout_values( $posted_data ) {
    parse_str( $posted_data, $output );
    WC()->session->set( 'checkout_data', $output );
}
 
add_filter( 'woocommerce_checkout_get_value', 'kastabalait_get_saved_checkout', 9999, 2 );
 
function kastabalait_get_saved_checkout( $value, $index ) {
    $data = WC()->session->get( 'checkout_data' );
    if ( ! $data || empty( $data[$index] ) ) return $value;
    return is_bool( $data[$index] ) ? (int) $data[$index] : $data[$index];
}
 
add_filter( 'woocommerce_ship_to_different_address_checked', 'kastabalait_get_saved_ship_to_different' );
 
function kastabalait_get_saved_ship_to_different( $checked ) {
    $data = WC()->session->get( 'checkout_data' );
    if ( ! $data || empty( $data['ship_to_different_address'] ) ) return $checked;
    return true;
}
				
			

Gönderiyi paylaş