wordpress wp elementor pro|更改表单中的字段

carvr3hs  于 11个月前  发布在  WordPress
关注(0)|答案(1)|浏览(179)

我有一个Elementor表单,其通过电子邮件发送的字段保存为销售线索。我想在发送表单后删除一些字段,这些字段的详细信息不会保存在销售线索中,而只会通过电子邮件发送。
我尝试了几件事都没有成功。有错误,我不能调试网站:将不胜感激的帮助。
这就是我所尝试的:

add_action( 'elementor_pro/forms/new_record', [ $plugin_public, 'remove_if' ], 9, 1 );

    public function remove_if( $record ){
        if( !isset($_POST['post_id']) || !isset($_POST['form_id']) ){
            return false;
        }
        
        $form_id = $record->get_form_settings('form_id');
            
        if($form_id  === "add_extra_fields"){
            $record->set_field( 'field1', '' );
        }

        return $record;
    }

字符串
也像这样:

public function remove_if( $record ){
        if( !isset($_POST['post_id']) || !isset($_POST['form_id']) ){
            return false;
        }
        
        $form_id = $record->get_form_settings('form_id');
            
        if($form_id  === "add_extra_fields"){
            $record->update_field( 'field1', '', '' );
        }

        return $record;
    }


请帮帮我,谢谢

zphenhs4

zphenhs41#

要修复它,您应该将hook转换为正确的操作,并使用Elementor提供的适当方法。

add_action( 'elementor_pro/forms/new_record', function ( $record ) {
    if ( ! $record instanceof \ElementorPro\Modules\Forms\Classes\Form_Record ) {
        return;
    }

    $raw_fields = $record->get('fields');
    if ( ! $raw_fields ) {
        return;
    }

    $form_id = $record->get_form_settings('form_id');
    if ( $form_id === 'add_extra_fields' ) {
        $fields_to_remove = ['field1', 'field2']; //you can add your field keys here

        foreach ( $fields_to_remove as $field_key ) {
            if ( isset( $raw_fields[ $field_key ] ) ) {
                unset( $raw_fields[ $field_key ] );
            }
        }
    }

    $record->set( 'fields', $raw_fields );
}, 10, 1 );

字符串

相关问题