¡Hola!
Estoy montando una tienda en la que en los clientes que compren los productos de una determinada categoría deben rellenar una serie de datos adicionales, después del pago. Estos datos se toman en un formulario que he creado en una página estática: www.midominio.com/formulario
En este formulario hay que indicar el LOCALIZADOR de la compra, por lo que para que la experiencia de usuario no sea muy engorrosa, me gustaría hacer una de las siguientes opciones:
¡GRACIAS POR TU COMPRA!
Localizador: 1234
Producto comprado: Producto A
Nombre del cliente: Pepe
Total: 300 EUR
FORMULARIO ADICIONAL
Campo 1: ________
Campo 2: ________
Campo 3: ________
ETC
¿Se os ocurre alguna manera de hacerla sin plugins?
¡Gracias!
Contenido solo visible a usuarios registrados
Hola Ana,
Con respecto a la pagina de gracias casualmente hay un complemento que puedes utilizar para que cada producto se ingrese a una pagina en especifico luego de la compra, te comparto el complemento:
https://wordpress.org/plugins/wc-thanks-redirect/
Tal como lo indican las imágenes de la descripción del mismo, en la pestana de general en tu producto tendrás una opción para agregar la url de thank you, ya teniendo esto en cuenta puedes generar tu propia pagina de gracias que carga posterior a realizar el checkout de la compra.
Un saludo 🖐️
Hola Argenis,
Muchas gracias por tu respuesta.
¿Sabrías alguna opción sin plugin?
Para redireccionar a una thank-you page diferente por categoría estoy haciendo esto:
add_action( 'woocommerce_thankyou', function ($order_id) { $order = wc_get_order( $order_id ); $in_order = false; $url = 'https://www.aupiraguismo.es/21/piraguarderia/inscripcion/formulario/'; $cats = array('campus'); foreach ($order->get_items() as $product) { if (has_term($cats, 'product_cat', $product->get_product_id())) { $in_order = true; } break; } if ( ! $order->has_status( 'failed' )) { if ($in_order) { wp_safe_redirect($url ); exit; } } });
Pero no sé de que manera añadir la información de order-details a la página de formulario.
Hola Ana,
En este caso si deseas redireccionar la orden a una página especifica puedes usar el siguiente código que debes añadir en el function.php de tu tema (preferiblemente un tema hijo)
add_action( 'woocommerce_thankyou', 'webwoo_redirecthankyou');
function webwoo_redirecthankyou( $order_id ){
$order = wc_get_order( $order_id );
$url = 'https://tudomini.com/gracias/'; // modifica la URL de destino
if ( ! $order->has_status( 'failed' ) ) {
wp_safe_redirect( $url );
exit;
}
}
Ten en cuenta que debes configurar la URL donde deseas el usuario sea redireccionado cuando la compra se realice, adicional esta es una redirecciona general para todo el formulario
Sobre el código que nos envías puedes indicarnos de donde lo estás tomando?, de un artículo especifico?
Un Saludo
@karen gracias por tu respuesta.
Pero esa función lo que hace es redireccionar a una página específica y eso ya lo estoy haciendo con la que añadí arriba.
Lo que me queda por solucionar es poder añadir en mi página de gracias la información sobre la compra (localizador, fecha, total, etc).
Hola Ana,
En este caso no logro comprender del todo la consulta, si ya tu función crea la redirección, a la pagina de gracias por que no puedes agregar esta información que nos comentas directamente en la que tengas creada como pagina de gracias?
Un saludo 🖐️
Hola @argenis
Porque la redirección solamente hace que en lugar de mostrar la página de thank-you muestre www.midominio.com/formulario, pero lo que necesito es que se añadan los datos de la compra al principio de esa página (www.midominio.com/formulario):
Espero haberme explicado 😊
Hola Ana,
En este caso no hay un shortcode que permita de forma predeterminada mostrar esto que necesitas, sin embargo puedes intentar con esto:
https://stackoverflow.com/questions/60036190/create-woocommerce-shortcodes-with-order-details
Directamente tienen un shortcode que puedes crear e intentar, pero primero debes agregar un código a tu functions.php:
Cpanel > administrador de archivos > Public_html > Dominio > Wp-content > Themes > tema > archivo functions.php
Guiandote un poco el codigo deberia ser algo asi:
add_shortcode( 'custom-woocommerce-name' , 'custom_first_name' );
function custom_first_name(){
$customer_id = get_current_user_id();
$order = wc_get_customer_last_order( $customer_id );
return $order->get_billing_first_name();
}
Y el shortcode el que de contenido a mostrar > custom-woocommerce-name, igualmente en el complemento que te compartí previamente se muestra una forma de mostrar el contenido en las imágenes deberías darle un vistazo a detalle ya que podrías sustituir y trabajar mas cómodamente con este complemento.
En caso de no funcionar lo que necesitas tendrías que consultarlo directamente con nuestros colaboradores ya que es un código realizado a medida para tu sitio.
https://www.webempresa.com/directorio-colaboradores.html
Un saludo 🖐️