Estoy tratando de agregar una forma de gravedad después de hacer una determinada elección. Tengo un par de opciones que un visitante puede hacer y, en función de esa elección, quiero cargar un formulario Gravity a través de Ajax.
Logré crear una llamada AJAX exitosa y recibir el formulario Gravity como html. Pero cada vez que trato de agregar esto a un div, me dice que gform is not defined . Supongo que está tratando de cargar el formulario.
const dealerForm = jQuery('.js-dealer-form'); jQuery.ajax({ type: 'GET', url: ajax.url, data: { action: 'load_gravity_form', formid: id, formtitle: 'true', formdescr: 'true', formajax: 'true', }, }).done(function(data) { dealerForm.html(data); }); // Get js file from manifest $manifest = json_decode(file_get_contents(get_template_directory() . '/dist/rev- manifest.json'), true); $jsFile = $manifest['app.bundle.full.js']; wp_enqueue_script( 'ajax-js', get_template_directory_uri() . '/dist/scripts/' . $jsFile, array('jquery') ); wp_localize_script( 'ajax-js', 'ajax', array( 'url' => admin_url( 'admin-ajax.php' ) )); // Add the action and nopriv action to account for users not logged in add_action( 'wp_ajax_nopriv_load_gravity_form', 'load_gravity_form' ); add_action( 'wp_ajax_load_gravity_form', 'load_gravity_form' ); function load_gravity_form() { // Return the following: // The form ID $gfId = intval($_GET['formid']); $gfTitle = filter_var($_GET['formtitle'], FILTER_VALIDATE_BOOLEAN); $gfDesc = filter_var($_GET['formdescr'], FILTER_VALIDATE_BOOLEAN); $gfAjax = filter_var($_GET['formajax'], FILTER_VALIDATE_BOOLEAN); // This is the shortcode to embed the form gravity_form($gfId, $gfTitle, $gfDesc, false, '', $gfAjax, 1); die(); } $forms = GFAPI::get_forms(); foreach ($forms as $form) { gravity_form_enqueue_scripts( $form['id'], true ); } $GLOBALS['timberContext'] = \Timber\Timber::get_context(); ob_start(); Cuando {{ function('do_shortcode', '[gravityform id="25" title="false" description="true" ajax="true"]') }} en mi plantilla, gform ya no está definido. Pero esa no debería ser la solución correcta, supongo.
¿Algunas ideas?