Añadir usuarios registrados a varias listas de Mailpoet

    Si quieres apuntar a los usuarios registrados de WordPress a tus listas de MailPoet (con el permiso correspondiente), puedes usar este código:

    add_action('user_register', 'agregar_usuario_a_listas_mailpoet');
    function agregar_usuario_a_listas_mailpoet($user_id) {
    
        if ( class_exists(\MailPoet\API\API::class ) ) {
            $mailpoet_api = \MailPoet\API\API::MP('v1');
    
            // Reemplaza los 'ID_DE_TUS_LISTAS' con los IDs de las listas de Mailpoet a las que deseas añadir los usuarios.
            $lists = array(7,9,6,8,4,5); //Aquí no hace falta añadir a una lista especial porque ya hay una nativa de MailPoet con los usuarios de WP
            
            $user_data = get_userdata( $user_id );
            $sub = array(
                'email' => sanitize_email( $user_data->user_email ),
                'first_name' => sanitize_text_field( $user_data->first_name ),
                // 'last_name' => sanitize_text_field( $_REQUEST['last_name'] ),
                // 'cf_my_field' => sanitize_text_field( $_REQUEST['my_field'] ) //Replace 'my_field' with your custom field name (optional).
            );
    
            // See if the user exists first.
            try {
                $subscriber = $mailpoet_api->getSubscriber( $sub['email'] );
            } catch ( \Throwable $th ) {
                // If the user doesn't exist, create them.
                $subscriber = $mailpoet_api->addSubscriber( $sub    );
            }
    
    
            // Try add the user to lists.
            if ( $subscriber ) {
    
                $user_id = $subscriber['id'];
            
                // add users to the lists.
                try {
                    $subscribe = $mailpoet_api->subscribeToLists( $user_id, $lists );
                } catch ( \Throwable $th ) {
                    echo 'unable to add to lists - ' . $th;
                }
            }
        }
    }