Transfiera los datos de variaciones de productos seleccionados al formulario de consulta Formulario 7

Con WooCommerce, uso Formulario de contacto 7 y complementos de Solicitud de información del producto para agregar un formulario dentro de las páginas de un solo producto, porque necesito una funcionalidad que permita a los usuarios enviar una solicitud de consulta sobre los productos (formulario de contacto simple).

Puedes entender ver esta captura de pantalla:

screeshot

Todos mis productos son productos variables con variaciones (de los atributos) .

¿Hay alguna forma de recuperar las variaciones seleccionadas por el cliente y enviarlas a través del formulario de contacto 7?

Por ejemplo :

El usuario selecciona el color negro y el tamaño s, luego llena el formulario y cuando se envía el correo electrónico, además de Recibir la información clásica (nombre, correo electrónico ecc ..) Recibo también el atributo seleccionado (en este caso black y s )

Gracias.

ACTUALIZADO: Se agregó la compatibilidad WC 3+

Lo he probado y no enviará ningún dato relacionado con las variaciones elegidas, ya que solo está enviando el formulario de contacto seleccionado debajo del botón Agregar al carrito (en las páginas de productos individuales). Además, este complemento no se ha actualizado desde hace más de 2 años, por lo que está desactualizado.

EL BUENO NUEVO: UNA SOLUCIÓN DE TRABAJO

Encontré esta respuesta relacionada: Nombre del producto WooCommerce en Formulario de contacto 7

Explica cómo establecer un shortcode del formulario de contacto 7 en una pestaña del producto y mostrar el título del producto elegido en el correo electrónico.

Entonces, a partir de esta respuesta, he transpuesto el código, para usarlo tal como lo hacía el complemento (justo debajo del botón Agregar al carrito).

Aquí en este ejemplo / respuesta he establecido en mi producto variable 2 atributos para las variaciones del producto: Color y Size .

Esta es mi configuración. Contact form 7 para el formulario que usaré en mi código:

     [submit "Send"] [text your-product class:product_details] 

Aquí he agregado este campo de texto [text your-product class:product_details] . por lo tanto, deberá agregar también en su etiqueta de “correo” la etiqueta [your-product] dentro del “cuerpo del mensaje”, para obtener eso en su correo electrónico:

 From: [your-name] <[your-email]> Subject: [your-subject] Product: [your-product] Message Body: [your-message] -------------- This e-mail was sent from a contact form 7 

La función personalizada de código PHP enganchada en woocommerce_after_add_to_cart_form action hook:

 add_action( 'woocommerce_after_add_to_cart_form', 'product_enquiry_custom_form' ); function product_enquiry_custom_form() { global $product, $post; // Set HERE your Contact Form 7 shortcode: $contact_form_shortcode = '[contact-form-7 id="382" title="form"]'; // compatibility with WC +3 $product_id = method_exists( $product, 'get_id' ) ? $product->get_id() : $product->id; $product_title = $post->post_title; // The email subject for the "Subject Field" $email_subject = __( 'Enquire about', 'woocommerce' ) . ' ' . $product_title; foreach($product->get_available_variations() as $variation){ $variation_id = $variation['variation_id']; foreach($variation['attributes'] as $key => $value){ $key = ucfirst( str_replace( 'attribute_pa_', '', $key ) ); $variations_attributes[$variation_id][$key] = $value; } } // Just for testing the output of $variations_attributes // echo '
'; print_r( $variations_attributes ); echo '

'; ## CSS INJECTED RULES ## (You can also remve this and add the CSS to the style.css file of your theme ?>

'.$email_subject.'

' . do_shortcode( $contact_form_shortcode ) . '

'; ## THE JQUERY SCRIPT ## ?>

El código va en el archivo function.php de su tema hijo activo (o tema) o también en cualquier archivo de complemento.

Obtendrá exactamente lo que el plugin estaba haciendo con las funciones adicionales:

  • Un título de producto personalizado , como asunto del correo.
  • Los atributos de variación seleccionados Nombre etiqueta + valores en los campos adicionales (que estarán ocultos).

Aquí están las capturas de pantalla de mi servidor de prueba:

El producto con los atributos seleccionados: enter image description here

Lo que obtengo en el formulario (no oculto el campo de texto especial para mostrar los datos extraídos por jQuery): enter image description here

Como ve, obtiene los datos que necesita enviar en su correo electrónico ...

Una vez que he seleccionado los atributos del producto y he llenado los otros campos del formulario, cuando envío este formulario, recibo este mensaje de correo electrónico:

 From: John Smith  Subject: Enquire about Ship Your Idea Product: Product Ship Your Idea (ID 40): Color: black — Size: 12 — Message Body: I send this request about this very nice product … I send this request about this very nice product … -- This e-mail was sent from a contact form 7 

Así que todo está funcionando exactamente como esperabas y esta es una respuesta ejemplar probada.