first page: The user enters a number and clicks next,
second page: contains several forms equal to the number the user entered it includes basic information third page: contains a stripe payment
My application logic involves taking this data and constructing an XML file to submit to some API when I get the last entry to parse and extract data using the attached code:
function forminator_form_after_save_entry( $form_id, $response ) {
if( $response['success'] and $form_id == 6080 ){
$entry = Forminator_Form_Entry_Model::get_latest_entry_by_form_id( 6080 );
error_log("XXX3:".print_r($entry, true));
error_log("XXX2:".print_r($_POST, true));
}
}
I get the following output:
[16-Nov-2024 14:07:16 UTC] XXX3:Forminator_Form_Entry_Model Object
(
[entry_id] => 6
[entry_type] => custom-forms
[form_id] => 6080
[draft_id] =>
[is_spam] => 0
[date_created_sql] => 2024-11-16 14:07:14
[date_created] => 16 Nov 2024
[time_created] => Nov 16, 2024 @ 2:07 PM
[meta_data] => Array
(
[number-1] => Array
(
[id] => 44
[value] => 3
)
[name-1] => Array
(
[id] => 45
[value] => Array
(
[prefix] => Miss
[first-name] => Rebecca
[middle-name] => Joelle Clarke
[last-name] => Alford
)
)
[name-1-2] => Array
(
[id] => 46
[value] => Array
(
[prefix] => Mr
[first-name] => Sacha
[middle-name] => Josiah Ewing
[last-name] => Hayden
)
)
[name-1-3] => Array
(
[id] => 47
[value] => Array
(
[prefix] => Mr
[first-name] => Jada
[middle-name] => Cassady Powers
[last-name] => Mueller
)
)
[select-1] => Array
(
[id] => 48
[value] => Option 2
)
[select-1-2] => Array
(
[id] => 49
[value] => Option 2
)
[select-1-3] => Array
(
[id] => 50
[value] => Option 2
)
[_forminator_user_ip] => Array
(
[id] => 51
[value] => 127.0.0.1
)
[stripe-1] => Array
(
[id] => 52
[value] => Array
(
[mode] => test
[product_name] => Plan 1
[payment_type] => One Time
[amount] => 35.00
[quantity] => 1
[currency] => USD
[transaction_id] => pi_3QLmeb2Lte7nQQ6y1fZ1OP6y
[transaction_link] => https://dashboard.stripe.com/test/payments/pi_3QLmeb2Lte7nQQ6y1fZ1OP6y
[status] => COMPLETED
)
)
)
[table_name:protected] => wp_frmt_form_entry
[table_meta_name:protected] => wp_frmt_form_entry_meta
)
This makes it very hard to parse with complex logic, is there a way to get a better format? or i should build my own transformer?
Ideally, I want:
number user enter,
array of entries
strip related stuff
I am a developer for the Easy Form Builder plugin. One of our users reported a conflict between the Easy Form Builder plugin and the Image Optimizer plugin. After testing, we confirmed that when your plugin (Image Optimizer) is installed and activated on a site, and the user has completed the “Connect to start” action in your plugin, Easy Form Builder encounters issues. Specifically, subpages of the Easy Form Builder plugin in the WordPress dashboard fail to open.
We tried deactivating and removing the Image Optimizer plugin from the Plugins list, but the issue persisted. However, we found that if we deactivate the Image Optimizer plugin via the Advanced Actions section by clicking “Deactivate,” the Easy Form Builder plugin’s functionality returns to normal.
Could you please provide guidance on how to resolve this conflict to ensure that WordPress users can avoid these issues?
Thank you for your assistance.
Best regards,
Hasan Tafreshi
Developer & Founder of Easy Form Builder
Any help with this would be much appreciated, we have a tried the API but can’t get this to work.
]]>My website is https://form.ahumi.edu.vn/registration/
]]>I’ve been working with the Easy Form Builder plugin and have encountered some issues with page caching. To manage this, we created a function to handle different caching plugins alongside Easy Form Builder:
public function cache_cleaner_Efb($page_id, $plugins) {
$page_id = intval($page_id);
$cache_plugins = json_decode($plugins);
foreach ($cache_plugins as $plugin) {
switch ($plugin->slug) {
case 'litespeed-cache':
if (defined('LSCWP_V') || defined('LSCWP_BASENAME')) {
do_action('litespeed_purge_post', $page_id);
}
break;
case 'wp-rocket':
if (function_exists('rocket_clean_post')) {
rocket_clean_post($page_id);
}
break;
// Additional cases for other plugins can be added here
}
}
}
However, we are now aiming for a more cohesive solution. Ideally, we want an approach similar to how other plugins handle caching for better compatibility.
Any advice or recommendations would be highly appreciated.
Best regards,
]]>I’ve been developing the Easy Form Builder plugin and have run into some challenges related to page caching. To manage this, we’ve implemented the following function to work with different page caching plugins alongside Easy Form Builder:
public function cache_cleaner_Efb($page_id, $plugins) {
$page_id = intval($page_id);
$cache_plugins = json_decode($plugins);
foreach ($cache_plugins as $plugin) {
switch ($plugin->slug) {
case 'litespeed-cache':
if (defined('LSCWP_V') || defined('LSCWP_BASENAME')) {
do_action('litespeed_purge_post', $page_id);
}
break;
case 'wp-rocket':
if (function_exists('rocket_clean_post')) {
rocket_clean_post($page_id);
}
break;
// Additional cases can be added here for other plugins
}
}
}
We are now looking for a more streamlined solution. Ideally, we would like an approach that is more consistent with how other plugins manage caching.
Any guidance or suggestions you can provide would be greatly appreciated!
Best regards,
]]>I’ve been working with the Easy Form Builder plugin and have encountered some challenges with page caching. To address this, we’ve developed the following function to handle page caching plugins in conjunction with Easy Form Builder:
public function cache_cleaner_Efb($page_id, $plugins) {
$page_id = intval($page_id);
$cache_plugins = json_decode($plugins);
foreach ($cache_plugins as $plugin) {
switch ($plugin->slug) {
case 'litespeed-cache':
if (defined('LSCWP_V') || defined('LSCWP_BASENAME')) {
do_action('litespeed_purge_post', $page_id);
}
break;
case 'wp-rocket':
if (function_exists('rocket_clean_post')) {
rocket_clean_post($page_id);
}
break;
// Additional cases can be added here for other plugins
}
}
}
However, we are now seeking a more integrated solution. Ideally, we would like a structure or approach that aligns with how other plugins manage caching more seamlessly.
I would greatly appreciate any guidance or insights you can share on this topic.
Best regards,
]]>