0

I'm trying to show a modal dialog when user get registered (action_hook: user_register) using the woocommerce plugin, but without having any result.

I would appreciate any help!

The code is shown below.

myplugin.php

// handler for new_user_registered
$myplugin->register_action_hook (
    'user_register', 
    array(
        'hooksClass',
        'add_new_user'
    ));

hooks.php

public static function add_new_user ($userid)
{
    ...
    function enqueue_scripts() {
        wp_enqueue_script('modaljs', plugin_dir_url(__FILE__) . 'js/modal.js', array('jquery'));
        wp_enqueue_style('modalcss', plugin_dir_url(__FILE__) . 'css/modal.css');
    }
    add_action('wp_enqueue_scripts', 'enqueue_scripts');
    ?>
    <button id="myBtn">Open Modal</button>
    <div id="myModal" class="modal">
        <div class="modal-content">
            <div class="modal-header">
            <span class="close">&times;</span>
            <h2>Header</h2>
            </div>
            <div class="modal-body">
              <p>Content</p>
            </div>
            <div class="modal-footer">
            <h3>Footer</h3>
            </div>
            </div>
        </div>
    <?php
}

What I am getting as a result is this image My image

Thank you in advance for any suggestion!

  • the action user_register is thrown when the user is created on a POST request and not on a page display. on which page do you want to display this modal dialog ? – mmm Jan 30 '18 at 9:22
  • I would like to display a modal after the user is successfully registered. – fmp Jan 30 '18 at 9:30
0

Like mmm said, user_register() is not for displaying additional content, but for hooking into the internal user creation flow.

What you will need to do is to hook into user_register() to store a short-lived transient marking that the user has registered. Then, add your modal code to the wp_footer() output, wrapped in a test for the transient you just set to see if a new user has been created (not forgetting to delete the transient immediately afterwards).

Hope that helps

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.