通过 WordPress 上的 Ninja Forms 更新额外的用户数据

Update extra user data through Ninja Forms on WordPress

我使用 Ninja Forms 创建了一个表单,用户可以在其中回答一些问题并创建分数。我已经在 Ninja Forms 中计算了分数,我需要将该分数更新为用户字段。我使用 Profile Extra Fields 插件创建了该字段。我看过Custom Form Action和Hook Tag部分,但是我不知道如何编写代码和实现它。你们能帮帮我吗?

如果您打算在此处以编程方式执行此操作是一种方法(您可以将其粘贴到 functions.php,但最好创建自定义插件):

首先注册一个新动作:

add_filter( 'ninja_forms_register_actions', 'register_my_nf_action' );
function register_my_nf_action( $actions ) {
    $actions['my_action_name'] = new MyActionClass();
    return $actions;
}

然后创建一个class:

class MyActionClass extends NF_Abstracts_Action {
    protected $_name     = 'my_action_name';
    protected $_timing   = 'late';
    protected $_priority = '100';

    public function __construct() {
        parent::__construct();

        $this->_nicename = esc_html__( 'My Action', 'text-domain' );
    }

    public function save( $action_settings ) {
        // You don't need to implement anything here
    }

    public function process( $action_settings, $form_id, $data ) {
        // Check if user is logged in (WordPress)
        if ( is_user_logged_in() ) {
            $user_id = get_current_user_id();
            // some logic here
            update_user_meta( $user_id, 'meta_key', 'your_meta_value' );
        }

        return $data;
    }
}

确保在表单中添加自定义操作并在测试之前保存表单。