Ticker

6/recent/ticker-posts

Ad Code

Responsive Advertisement

Recordar los datos al volver a finalizar compra en WooCommerce

A ti no te habrá pasado pero a tus clientes muchas veces que, al llegar a la página de finalizar compra, han rellenado una serie de datos y que, por algún motivo, han vuelto al carrito a modificar una cantidad o incluso a la tienda para añadir algún otro producto y, al volver a la página de finalizar compra, algunos de los datos antes rellenados ya no están, teniendo que volver a completarlos.

Y no, no es que WooCommerce funcione mal, es que ese es el comportamiento por defecto, que no se guarden todos los datos de los visitantes mientras no finalicen la compra. Ahora bien ¿es eso lo que quieres?

Porque igual prefieres ahorrarle a tus clientes ese bonito tiempo de volver a rellenar los datos, simplemente configurando tu sitio para que guarde todos los datos al finalizar compra, para que les estén esperando cuando vuelvan ya a realizar el pago definitivamente.

La solución está en añadir esta función:

/* Guardar campos de finalizar compra */
add_action( 'woocommerce_checkout_update_order_review', 'ayudawp_guarda_campos_pago', 9999 );
function ayudawp_guarda_campos_pago( $posted_data ) {
parse_str( $posted_data, $output );
WC()->session->set( 'checkout_data', $output );
return $posted_data;
}

add_filter( 'woocommerce_checkout_get_value', 'ayudawp_recupera_campos_pago', 9999, 2 );
function ayudawp_recupera_campos_pago( $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', 'ayudawp_recupera_campos_pago_envio' );
function ayudawp_recupera_campos_pago_envio( $checked ) {
$data = WC()->session->get( 'checkout_data' );
if ( ! $data || empty( $data['ship_to_different_address'] ) ) return $checked;
return true;
}
  • El primer filtro guarda los datos rellenados por el cliente cuando los completa en su primera visita a la página de finalizar compra.
  • El segundo filtro recupera esos datos rellenados en los campos cuando vuelve a la página de finalizar compra.
  • El tercer filtro hace lo mismo pero con los datos de enviar a una dirección diferente, si existía.

Todo este código debes añadirlo según las indicaciones de esta sencilla guía:

Cómo y dónde pegar en WordPress códigos PHP, JS, CSS y funciones que encuentres por ahí

Cuando hayas guardado los cambios en el código ahora WooCommerce recordará todos los campos que tus clientes hayan rellenado previamente en la página de finalizar compra.

Campos rellenados por cliente

 

La entrada Recordar los datos al volver a finalizar compra en WooCommerce la publicó primero Fernando Tellado en Ayuda WordPress. No copies contenido, no dice nada bueno de ti a tus lectores.

Enregistrer un commentaire

0 Commentaires