Developer Hooks & Filters Reference

🔴 Advanced
⏱️ 30 minutes

Action Hooks

Login Actions

// Before login form displays
do_action('attrua_before_login_form');

// After successful login
do_action('attrua_after_login', $user);

// Login failed
do_action('attrua_login_failed', $username, $error);

Registration Actions

// Before registration
do_action('attrua_before_registration', $user_data);

// After user created
do_action('attrua_after_registration', $user_id);

// Registration failed
do_action('attrua_registration_failed', $errors);

Filter Hooks

Login Filters

// Modify login redirect
add_filter('attrua_login_redirect', function($redirect_to, $user) {
    if (in_array('premium', $user->roles)) {
        return '/premium-dashboard/';
    }
    return $redirect_to;
}, 10, 2);

// Customize login form args
add_filter('attrua_login_form_args', function($args) {
    $args['remember'] = false;
    return $args;
});

Registration Filters

// Add custom validation
add_filter('attrua_registration_errors', function($errors, $user_data) {
    if (strlen($user_data['password']) < 12) {
        $errors->add('password_length', 'Password must be 12+ characters');
    }
    return $errors;
}, 10, 2);

// Modify user meta
add_filter('attrua_registration_user_meta', function($meta, $user_data) {
    $meta['signup_source'] = 'custom_form';
    $meta['signup_date'] = current_time('mysql');
    return $meta;
}, 10, 2);

Form Display Filters

// Add custom field to login form
add_action('attrua_login_form_fields', function() {
    echo '<div class="custom-field">';
    echo '<label>Department</label>';
    echo '<select name="department">...</select>';
    echo '</div>';
});

// Modify error messages
add_filter('attrua_error_message', function($message, $code) {
    if ($code === 'invalid_username') {
        return 'Please check your email address';
    }
    return $message;
}, 10, 2);

Example Use Cases

Track Login History

add_action('attrua_after_login', function($user) {
    update_user_meta($user->ID, 'last_login', current_time('mysql'));
    update_user_meta($user->ID, 'login_count', 
        (int) get_user_meta($user->ID, 'login_count', true) + 1
    );
});

Send Welcome Email

add_action('attrua_after_registration', function($user_id) {
    $user = get_user_by('id', $user_id);
    wp_mail(
        $user->user_email,
        'Welcome to Our Site!',
        'Thanks for registering...'
    );
});

Restrict Registration by Domain

add_filter('attrua_registration_errors', function($errors, $user_data) {
    $allowed_domains = ['company.com', 'partner.com'];
    $email_domain = substr(strrchr($user_data['email'], '@'), 1);
    
    if (!in_array($email_domain, $allowed_domains)) {
        $errors->add('domain', 'Only company email addresses allowed');
    }
    return $errors;
}, 10, 2);

Complete Hook Reference

For a complete list of all available hooks, filters, and code examples, visit:

📚 Developer Documentation

Review My Order

0

Subtotal