我尝试了此操作,但只能连接到主页表单的第一个表,并且无法在不同页面的表单中执行相同的操作:\
add_action( 'elementor_pro/forms/new_record' , function( $record, $ajax_handler ) {
$form_name = $record->get_form_settings( 'form_name' );
if ( 'FORM_ONE' == $form_name )
{
$raw_fields = $record->get( 'fields' );
$fields = [];
foreach ( $raw_fields as $id => $field ) {
$fields[ $id ] = $field['value'];
}
$wpdb_c = new wpdb( "DB-name", "DB_Pass", "database-name", "localhost" );
$output['success'] = $wpdb_c->insert('Tablename', array(
'name' => $fields['name'],
'email' => $fields['email'],
'message' => $fields['message']));
$ajax_handler->add_response_data( true, $output );
}
elseif ( 'FORM_TWO' == $form_name ) {
$raw_fields = $record->get( 'fields' );
$fields = [];
foreach ( $raw_fields as $id => $field ) {
$fields[ $id ] = $field['value'];
}
$wpdb_d = new wpdb( "DB-name", "DB_Pass", "database-name", "localhost" );
$output['success'] = $wpdb_d->insert('Tablename', array(
'first_name' => $fields['first_name'],
'last_name' => $fields['last_name'],
'email1' => $fields['email1'],
'email2' => $fields['email2'],
'dob' => $fields['dob'],
'phone_no' => $fields['phone_no'],
'country' => $fields['country'],
'gender' => $fields['gender'],
'preference' => $fields['preference'],
'details' => $fields['details'],
'where_did_hear' => $fields['where_did_hear'],
'file' => $fields['file']));
$ajax_handler->add_response_data( true, $output);
}
}, 10, 2);
我使用后端数据库为MYSQL
您考虑过使用REST API吗?通过 Supabase 等 REST API 连接外部数据库可能是您正在寻找的解决方案。
我能够使用 API 来解决问题,这是该阶段唯一的解决方案。
除此之外,还可以选择使用 WordPress 库进行自定义编码