Un usuario preguntó 👇
Entonces tengo una función escrita que toma datos del formulario CF7 que se ingresaron y analizaron en metadatos de usuario. Lo probé y funciona en formularios de contacto individuales sin ninguna pregunta. Mi problema es que no se está insertando al final del formulario multidisciplinar.
La función básica es:
//Onboard Data Export
add_action( 'wpcf7_before_send_mail', 'vbg_user_onboard' );
function vbg_user_onboard( $contact_form ){
if (!isset($contact_form->posted_data) && class_exists('WPCF7_Submission')) {
$log .= 'posted data set and class exists!n';
$submission = WPCF7_Submission::get_instance();
$current_user = wp_get_current_user();
$user_id = $current_user->ID;
if ($submission) {
$log .= 'submission exists!n';
$formdata = $submission->get_posted_data();
}
if( !empty($formdata['past-claim'])){
//parse user data
$user_email = $formdata['user-email'];
$user_filed_before = $formdata['past-claim'];
//User Meta
$user_meta = array(
'filed_before' => $user_filed_before,
);
//Set metadata
update_user_meta( $user_id, "filed_before", $user_meta['filed_before'] );
}
}//end
}
¿Existe una forma específica en que se manejan los datos en estos formularios? ¿Cómo recibo los detalles por correo? Los correos electrónicos parecen estar bien sin errores mientras se ejecutan los datos, por lo que deben estar allí.
¡Gracias!
(@starfiredev)
Hace 9 meses, 1 semana
Hoy pasé un buen rato trabajando con él y tengo un código actualizado. Cambié un poco el método para eliminar los resultados de la cookie de sesión. Aunque almacena con éxito la matriz $ formdata, no parece escribir en user_meta en absoluto.
‘add_action (‘ wpcf7_before_send_mail ‘,’ vbg_user_onboard ‘); función vbg_user_onboard () {
si (! isset ($ _ COOKIE[‘cf7msm_posted_data’])) {//} else {$ current_user = wp_get_current_user (); $ user_id = $ current_user-> ID; $ cookie_data = $ _COOKIE[‘cf7msm_posted_data’]; $ cookie_data = rayas ($ cookie_data); $ formdata = (editar) json_decode ($ cookie_data);
// analizar datos $ user_email data = $ formdata[‘user-email’]; $ user_filed_before = $ formdata[‘past-claim’]; }} ‘Esta es una versión muy desconectada por ejemplo. Tengo alrededor de 20 variables que pasan por el formulario. No supera el límite de cookies de 4kb.
También tuve algunas otras declaraciones para asegurarme de que solo interferiría con el formulario final, pero tuve que eliminar cosas para probar.
Si hay alguna ayuda que aún pueda ofrecer, se la agradeceríamos.
Esta respuesta fue modificada hace 9 meses, hace una semana por.
(@webheadllc)
hace 9 meses
Hola,
Esa es una forma de publicar los datos, otra forma es la wpcf7_posted_data
filtrar.
En cuanto a guardar la meta del usuario, no estoy seguro de qué podría salir mal y cuál está fuera del alcance de este plugin. Asegúrese de que se alcance parte de su código y que la identificación de usuario y el valor de sus ahorros no estén vacíos.
¿Solucionó tu problema??
0 / 0