Tengo una red multisitio de WordPress con más de 20 sitios. y estoy usando formularios de gravedad para formularios de contacto/registro/suscripción. Me gustaría crear un formulario global para mi instalación multisitio de wordpress. ¿Es posible que los formularios de gravedad guarden las entradas del formulario solo en el sitio principal/principal? he intentado usar switch_to_blog()
en sitios para niños. pero no funciona. Cualquier ayuda sería apreciada 🙂
Si duplica el formulario en todos los sitios, puede hacer que todos envíen sus datos al sitio principal al incluir esto en los sitios ‘secundarios’:
$formId = 1; //Put your form id here
add_filter('gform_confirmation_'.$formId, 'gform_confirmation', 10, 4);
function gform_confirmation($confirmation, $form, $entry, $is_ajax) {
//Switch to Main site
switch_to_blog(1);
//Insert the entry into the main site
$new_entry_id = \GFAPI::add_entry($entry);
//Switch back
restore_current_blog();
//Tidy up by deleting the entry from THIS site
$result = GFAPI::delete_entry($entry['id']);
return $confirmation;
}
-
¿Hay alguna razón por la que hay una barra antes del
GFAPI::add_entry($entry);
?–Mike Kormendy
1 de enero de 2020 a las 15:46
Los formularios de gravedad almacenan datos basados en el prefijo de la tabla de la base de datos del blog,
en multisitio, todos los sitios usan la misma base de datos, pero los datos se separan según el prefijo de la tabla, el prefijo es algo así como, wp_1_, wp_2_, wp_3_…
si tiene un sitio, como my.blog1.com con prefijo de tabla, wp_1_, el formulario de gravedad almacena todas las entradas de formulario de my.blog1.com en wp_1_rg_lead, wp_1_rg_lead_detail, wp_1_rg_lead_detail_long,
Ahora, si desea guardar esos detalles en su instalación principal, debe jugar con la base de datos y modificar la forma de gravedad usando ganchos como gform_pre_submission
o gform_after_submission
Este correo podría ayudar
http://www.endocreative.com/save-gravity-forms-data-custom-database-table/