JAY Login & Register
Developed with ❤️ in Iran. 🇮🇷 JAY Login & Register is not just a login plugin; it is a complete authentication, access control, and user management ecosystem for WordPress. While it creates a seamless Mobile OTP (One-Time Password) login and registration flow compatible with Digits, its true power lies in its Advanced Content Restriction and Granular Role Management capabilities. 🛡️ NEW: Advanced Role & Capability Management Take granular control over user permissions without extra plugins: * Visual Role Manager: Easily create, edit, and delete custom user roles with a clean, tabbed interface. * Granular Capability Assignment: Assign specific WordPress capabilities (Posts, Pages, Media, Comments, Categories, Tags, and 3rd-party plugin caps) to any role. * User-Specific Overrides: Grant or revoke specific capabilities for individual users directly from their profile page, independent of their assigned role. 🌟 NEW: Advanced User Panel & Profile Builder Transform user profiles with a powerful, drag-and-drop form builder: * Unlimited Custom Fields: Text, Select, Radio, Checkbox, and Jalali Date Picker. * Smart Conditional Logic: Show/hide fields dynamically based on User Meta (Server-side) or other field values (Client-side) with complex AND/OR rules. * Native Media Integration: Direct avatar uploads to the WordPress Media Library. * Bulletproof Security: All conditional logic is strictly re-validated on the server to prevent tampering. 🚀 NEW: Native Gravity Forms OTP Add-on Verify phone numbers directly inside any Gravity Form before submission: * Seamless Integration: Dedicated “JAY Mobile Verification” field in the GF editor. * AJAX Validation & Auto-Login: Verify OTPs without page reloads and optionally log in/register users instantly. * Built-in Anti-Fraud: Fully protected by JAY’s global IP/Phone Lockout system to prevent SMS bombing. Key Features Core Login & Registration * Smart Detection: Automatically routes new numbers to registration and existing numbers to login. * Multi-Method Login: Users can log in seamlessly using Mobile Number, Email, or Username. * Digits Compatibility: Seamlessly recognizes and logs in users previously registered with the Digits plugin. * Optional Identity Verification: Built-in duplicate prevention for National ID or Passport numbers. Powerful Content & Access Control * Inline & Redirect Locking: Use the [jay_content_lock] shortcode or Gutenberg Block to restrict content. Choose between a blurred preview with redirect, or an inline AJAX form that unlocks content instantly. * Post/Page Meta Box: Restrict entire posts or pages based on login status, specific user roles, or custom user meta keys. Advanced Security & Anti-Fraud * Multiple CAPTCHA Options: Disabled, Simple Math, Invisible Honeypot (with time-trap), or Google reCAPTCHA v3. * Brute-Force Protection: Configurable lockouts based on max failed attempts, duration, and blocking method (Phone, IP, or both). * Hide wp-login.php: Secure your site by completely hiding the default WordPress login page. Seamless User Experience (UX) * Smart Redirects: Automatically returns users to the page they were trying to access after login. * Modern Customizable Forms: Beautifully designed forms with optional logo upload and custom color styling. * Custom Logout URL: Create a user-friendly logout link (e.g., yoursite.com/logout). Powerful Admin Management * Admin Area Access Control: Restrict access to the WordPress dashboard (/wp-admin) based on specific user roles. * User Switching: Easily switch to any user’s account to view the site from their perspective. * Customizable User Columns: Adds sortable “Mobile Number” and “Jalali Registration Date” columns, and allows creating custom columns based on any user meta key. External Services This plugin connects to third-party services to provide its full range of features. These are optional and only active when configured by the site administrator. SMS Gateways (iPPanel, FarazSMS, Kavenegar, SMS.ir, MeliPayamak, RayganSMS): Sends the user’s mobile number to deliver SMS OTP codes. Privacy Policies Bale Messenger (Safir OTP): Sends the user’s mobile number to deliver app-based OTP codes as a cost-effective SMS alternative. Bale Developer Docs Google (reCAPTCHA v3 & OAuth): Processes IP and device data for bot protection and secure one-click authentication. Google Privacy Policy Eitaa (WebApp API): Secure data exchange with Eitaa servers for Mini App authentication. Eitaa Developer Docs
Top keywords
- user16×2.54%
- login9×1.43%
- custom6×0.95%
- mobile6×0.95%
- access5×0.79%
- content5×0.79%
- otp5×0.79%
- page5×0.79%
- role5×0.79%
- sms5×0.79%
- users5×0.79%
- wordpress5×0.79%
Pods Gravity Forms Add-On
Requires: Pods 3.0+, Gravity Forms 1.9+ Demo: Want to try Pods GF out? Check out the Gravity Forms Live Demo and install the Pods and Pods Gravity Forms plugins once you’re there Bugs/Ideas: Please report bugs or request features on GitHub Special thanks to Rocketgenius for their sponsorship support and to Naomi C. Bush for her help in the initial add-on UI work. WP-CLI Command for Syncing Entries This add-on provides the ability to sync entries from a Form Submission and Entry Edit screen. To bulk sync all entries even prior to setting up a Pods Gravity Form Feed, you can run a WP-CLI command. Example 1: Sync all entries for Form 123 first active Pod feed wp pods-gf sync --form=123 Example 2: Sync all entries for Form 123 using a specific feed (even if it is inactive) wp pods-gf sync --form=123 --feed=2 Mapping GF List Fields to a Pods Relationship field You can map a GF List field to a Relationship field related to another Pod. Using the below examples you can customize how the automatic mapping works. By default, the list columns will map to the pod fields with the same labels. Example 1: Customize what columns map to which Related Pod fields for Form ID 1, Field ID 2 Customizing a list field row can be done by using the pods_gf_field_columns_mapping filter, which has Form ID and Field ID variations (pods_gf_field_columns_mapping_{form_id} and pods_gf_field_columns_mapping_{form_id}_{field_id}). add_filter( 'pods_gf_field_columns_mapping_1_2', 'my_columns_mapping', 10, 4 ); /** * Filter list columns mapping for related pod fields. * * @param array $columns List field columns. * @param array $form GF form. * @param GF_Field $gf_field GF field data. * @param Pods $pod Pods object. * * @return array */ function my_columns_mapping( $columns, $form, $gf_field, $related_obj ) { $columns[0] = 'first_field'; $columns[1] = 'second_field'; $columns[2] = 'third_field'; return $columns; } Example 2: Customize a List row for Form ID 1, Field ID 2 Customizing a list field row can be done by using the pods_gf_field_column_row filter, which has Form ID and Field ID variations (pods_gf_field_column_row_{form_id} and pods_gf_field_column_row_{form_id}_{field_id}). add_filter( 'pods_gf_field_column_row_1_2', 'my_column_row_override', 10, 6 ); /** * Filter list field row for relationship field saving purposes. * * @param array $row List field row. * @param array $columns List field columns. * @param array $form GF form. * @param GF_Field $gf_field GF field data. * @param array $options Pods GF options. * @param Pods|false $related_obj Related Pod object. * * @return array */ function my_column_row_override( $row, $columns, $form, $gf_field, $options, $related_obj ) { // Update certain row fields based on the value of specific column. if ( ! empty( $row['user_relationship_field'] ) ) { $user = get_userdata( (int) $row['user'] ); // Set the post_title to match the User display name. if ( $user && ! is_wp_error( $user ) ) { $row['post_title'] = $user->display_name; } } return $row; }
Top keywords