// Add a custom heading based on referrer URL and fetch title function wbcom_add_custom_heading_based_on_referrer($form) { // Get the referrer URL $referrer = isset($_SERVER['HTTP_REFERER']) ? $_SERVER['HTTP_REFERER'] : ''; // Define the default heading $default_heading = 'Please navigate to the event page to click on the Buy Ticket button.'; // Fetch the post title and ID from the referrer URL $post_data = wbcom_fetch_post_data_from_url($referrer, $default_heading); $headingToDisplay = $post_data['title']; $post_id = $post_data['id']; // Add the heading to the form description $form['description'] = '

' . esc_html($headingToDisplay) . '

' . $form['description']; // Populate hidden fields with post title and post ID foreach ($form['fields'] as &$field) { if ($field->type == 'hidden') { if ($field->id == 15) { // field_4_15 $field->defaultValue = esc_attr($headingToDisplay); } elseif ($field->id == 16) { // field_4_16 $field->defaultValue = esc_attr($post_id); } } } return $form; } // Function to fetch post data from URL using WordPress REST API function wbcom_fetch_post_data_from_url($url, $default) { if (empty($url)) { return array('title' => $default, 'id' => ''); } // Parse the URL to get the path $path = parse_url($url, PHP_URL_PATH); if (empty($path)) { return array('title' => $default, 'id' => ''); } // Remove leading and trailing slashes $path = trim($path, '/'); // Get the last part of the path, assuming it's the post name (slug) $post_name = basename($path); // Fetch the post by name $post = get_page_by_path($post_name, OBJECT, 'tribe_events'); // If post is found, return the title and ID, otherwise return the default if ($post) { return array('title' => $post->post_title, 'id' => $post->ID); } else { return array('title' => $default, 'id' => ''); } } // Apply the custom heading function to the specific form using gform_pre_render add_filter('gform_pre_render_4', 'wbcom_add_custom_heading_based_on_referrer'); // Form ID 4 add_filter('gform_pre_process_4', 'wbcom_add_custom_heading_based_on_referrer'); // Form ID 4 add_filter('gform_pre_validation_4', 'wbcom_add_custom_heading_based_on_referrer'); // Form ID 4 add_filter('gform_pre_submission_filter_4', 'wbcom_add_custom_heading_based_on_referrer'); // Form ID 4