{CODICTS} Snippets is now available

MyListing Bulk Messages

The {CODICTS} MyListing Bulk Messages plugin enables users to send bulk messages to multiple listing owners simultaneously — via MyListing’s built-in direct messaging system, email, or both.

The plugin provides two ways to send messages:

Elementor Widget — A customizable {C} > Bulk Messages widget you can place on any page. It uses configurable listing filters (categories, regions, tags, listing types, priority, specific listings, users) to determine which listing owners receive the message.

Explore Page Button — An automatic “Bulk Message” button on the MyListing Explore page that captures the current search filters and sends messages to all matching listing owners.

Both methods support admin approval workflows, reCAPTCHA validation, time-based user message limits, and configurable delivery methods.

Installation & Activation

Start by downloading the plugin from the Downloads page on your dashboard on the CoDicts website.

After downloading, install and activate the plugin in WordPress by navigating to “Plugins” > “Add New” > “Upload Plugin” and selecting the downloaded zip file. Click “Install Now” and then “Activate”.

After activation, the plugin automatically creates its database table and registers the Elementor widget. Configure the plugin via Bulk Messages → Settings in the WordPress admin sidebar.

Note: If the MyListing theme is not detected, an admin error notice will appear and all functionality is disabled.


Key Features

FeatureDescription
Multi-Channel DeliverySend via MyListing Direct Messages (in-app), Email, or Both simultaneously.
Elementor WidgetFully configurable widget with listing filter controls for categories, regions, tags, types, priority, users, and specific listings.
Explore Page IntegrationAutomatic “Bulk Message” button on the Explore page that captures active search filters.
Admin ApprovalOptional workflow where messages are held pending until an admin approves, declines, or deletes.
Time-Based Rate LimitingPer-user message limits: hourly, daily, weekly, or monthly.
reCAPTCHA SupportOptional Google reCAPTCHA using MyListing’s built-in reCAPTCHA settings.
Role-Based AccessControl which user roles (including guests) can use the bulk message feature.
Max Send LimitGlobal cap on the maximum number of listings targeted per bulk message (default: 500).
Self-Message PreventionAutomatically excludes the sender’s own listings from the recipient list.
Dynamic Listing CountReal-time display of how many listings will receive the message.
Admin Message ListWordPress admin page showing all sent, pending, and declined messages with bulk actions.

Delivery Methods

The plugin supports three delivery methods:

MethodDescriptionRequirements
Direct Message (In-App)Sends messages through MyListing’s built-in messaging system. Messages appear in the recipient’s MyListing inbox and trigger MyListing notifications.Sender must be logged in.
EmailSends styled HTML emails via WordPress’s mail system. Messages are grouped by author — if one author owns multiple target listings, they receive a single email listing all their relevant listings.Works for both logged-in users and guests.
BothSends through both Direct Message and Email simultaneously.Sender must be logged in (for the direct message portion).

You can optionally allow users to choose their preferred delivery method in the form, or set a default that applies to all messages.


Admin Settings Page

Navigate to Bulk Messages → Settings in the WordPress admin sidebar. These settings control the Explore Page integration (the automatic “Bulk Message” button on the Explore page).

SettingDefaultDescription
Enable “Bulk Message” button on Explore WidgetOffMaster toggle for the Explore page button.
Button TextBulk MessageThe text displayed on the Explore page button.
Form HeadingBulk MessageHeading displayed at the top of the modal form.
Form DescriptionSend messages to [listing_count] listingsDescription text. Use [listing_count] as a dynamic placeholder for the number of target listings.
Require Admin ApprovalOffWhen enabled, messages are held pending until an admin approves.
Admin Approval MethodEmail NotificationHow the admin is notified: Email, Admin List, or Both.
Admin Notification EmailSite admin emailEmail address for admin approval notifications.
Use reCAPTCHAOffEnable Google reCAPTCHA (configured via MyListing settings).
Show Phone Number FieldOffShow an optional phone number field in the form.
Default Message Delivery MethodDirect MessageDefault delivery channel: Direct Message, Email, or Both.
Allow Users to Choose Delivery MethodOffLet users select their preferred delivery method in the form.
Success MessageMessages successfully sent to [listing_count] listingsMessage shown after successful send. Use [listing_count] for the count.
Success Message (Pending)Direct messages will be sent to [listing_count] listings once an admin approvesMessage shown when admin approval is required.
Max target bulk message limit500Maximum number of listings targeted per bulk message.
Message Limit Per UserOffEnable time-based per-user message rate limiting.
Maximum Messages50Maximum messages per user per time period (when limit is enabled).
Time PeriodPer DayRate limit period: Per Hour, Per Day, Per Week, or Per Month.
Allowed User RolesWhich user roles can use the bulk message feature. Includes a “Guest” option for non-logged-in users.

Using the Explore Page Button

When enabled in the settings, a “Bulk Message” button automatically appears on the MyListing Explore page in the search filter area.

1. The user applies search filters on the Explore page (location, categories, keywords, etc.).

2. The plugin captures the current filter state and listing count in real time.

3. The user clicks the “Bulk Message” button.

4. A modal form appears showing the number of matching listings and fields for Subject, Message, and optionally Phone Number and Delivery Method.

5. The user fills in the form and submits. Messages are sent (or queued for approval) to all matching listing owners.

Note: On the Explore page, listing IDs are collected from the currently visible/loaded listings. If listings are loaded via infinite scroll, only the listings that have been scrolled into view are captured.


Using the Elementor Widget

The {C} > Bulk Messages Elementor widget can be placed on any page to create a bulk message form with custom listing filters.

1. In the Elementor editor, search for “{C} > Bulk Messages” and drag it onto your page.

2. Configure the widget settings in three groups:

Form Settings

ControlDefaultDescription
Form HeadingBulk MessagesHeading text at the top of the form.
Form DescriptionSend messages to [listing_count] listingsDescription with dynamic [listing_count] placeholder.
Message Delivery MethodDirect MessageDelivery channel: Direct Message (In-App) / Email / Both.
Allow Users to Choose Delivery MethodNoLet users pick their delivery method in the form.
Require Admin ApprovalNoHold messages pending until admin approves.
Admin Approval MethodEmail NotificationNotification method: Email / Admin List / Both.
Admin Notification EmailSite admin emailEmail for approval notifications.
Use reCAPTCHANoEnable reCAPTCHA validation.
Show Phone Number FieldNoDisplay an optional phone number input.
Success MessageDirect messages successfully sent…Shown on successful immediate send.
Success Message (Pending)Direct messages will be sent…Shown when approval is required.
Allowed on User RolesAdministratorWhich roles can see and use the widget.
Max target bulk message limit500Cap on the number of listings targeted.

Rate Limiting Controls

ControlDefaultDescription
Message Limit Per UserNoEnable time-based per-user rate limiting.
Maximum Messages50Maximum messages per user per time period.
Time PeriodPer DayPeriod: Per Hour / Per Day / Per Week / Per Month.
Show Message Limit CounterYesDisplay remaining message count to the user.

Listing Filter Controls

FilterDescription
Filter by UsersTarget listings by specific authors.
Filter by CategoriesFilter by listing categories.
Filter by RegionsFilter by region taxonomy terms.
Filter by TagsFilter by listing tags.
Filter by Custom TaxonomiesDynamically generated filters for each custom taxonomy registered in MyListing.
Filter by Listing Type(s)Target specific listing types.
Filter by PriorityFilter by priority levels: Normal / Featured / Promoted / Custom.
Select a list of listingsManually select specific listing IDs via a repeater control.

Filters can be combined. For example, you can target all “Restaurant” listing types in the “Downtown” region that have the “Featured” priority. The widget queries matching published listings and displays the count on the form.

3. Save and publish the page. Users with the allowed roles will see the bulk message form with the configured filters already applied.


Admin Approval

When admin approval is enabled, submitted messages are saved with “Pending” status instead of being sent immediately. The admin is notified and can approve, decline, or delete the message.

How the Admin Is Notified

MethodDescription
Email NotificationThe admin receives a styled HTML email with message details and Approve / Decline / Delete action links.
Admin Message ListThe message appears in the Bulk Messages admin page with “Pending” status. A badge on the menu item shows the count of pending messages.
BothBoth email notification and admin list entry.

Approval Actions

ActionWhat Happens
ApproveMessages are sent to all target listing owners via the configured delivery method.
DeclineMessage is marked as declined. No messages are sent.
DeleteMessage record is permanently removed from the database.

Admins can take these actions from the email notification links or from the admin message list page (via row actions or bulk actions).


Admin Message List

Navigate to Bulk Messages (top-level menu) in the WordPress admin. This page displays a table of all bulk message submissions.

Table Columns

ColumnDescription
Full NameSender’s full name.
EmailSender’s email address.
Phone NumberSender’s phone number (if provided).
ParametersQuery parameters used to filter listings, shown as colored pills.
Listing CountNumber of target listings.
Delivery MethodHow the message was/will be delivered.
RefererThe page URL from which the message was sent.
SubjectMessage subject line.
MessageMessage body text.
DateSubmission date and time.
StatusPending (orange) / Sent (green) / Declined (red).

You can search by sender name, filter by status (All / Pending / Sent / Declined), sort by name, email, date, or status, and use bulk actions to approve, decline, or delete multiple messages at once.

The Bulk Messages menu item displays a badge with the count of pending messages, similar to WordPress’s plugin update badges.


Rate Limiting

The rate limiting system prevents users from sending excessive bulk messages by tracking message counts per user with configurable time periods.

SettingDescription
Maximum MessagesThe maximum number of bulk messages a user can send per time period.
Time PeriodHow often the counter resets: Per Hour, Per Day, Per Week, or Per Month.

Counters automatically reset when the time period expires — no manual reset is needed. For example, with “50 messages Per Day,” a user can send up to 50 bulk messages per day, and their counter resets at midnight.

PeriodResets At
Per HourNext full hour boundary.
Per DayTomorrow at midnight.
Per WeekNext Monday at midnight.
Per MonthFirst day of next month at midnight.

When a user reaches their limit, they see the message: “Your [period] message limit has been reached.”

The Elementor widget has an additional option to show the message limit counter on the form, so users can see how many messages they have remaining.


Example Setup: Explore Page Button

1. Go to Bulk Messages → Settings.

2. Check “Enable Bulk Message button on Explore Widget”.

3. Set the Button Text to “Message All Listings.”

4. Set the Default Message Delivery Method to “Direct Message.”

5. Enable “Require Admin Approval” and set the Admin Approval Method to “Both.”

6. Set the Allowed User Roles to “Administrator” and “Subscriber.”

7. Enable “Message Limit Per User” with a maximum of 10 messages Per Day.

8. Click Save Changes.

Now administrators and subscribers see a “Message All Listings” button on the Explore page. They can filter listings using the Explore page’s search filters, then click the button to send a bulk message to all matching listing owners. Messages are held for admin approval before delivery, and each user is limited to 10 bulk messages per day.


Example Setup: Elementor Widget

1. Edit a page with Elementor.

2. Search for “{C} > Bulk Messages” and drag it onto the page.

3. Set Filter by Listing Type(s) to “Restaurant.”

4. Set Filter by Regions to “Downtown.”

5. Set Message Delivery Method to “Email.”

6. Set Allowed on User Roles to “Administrator.”

7. Save and publish.

The page now shows a bulk message form targeting all published Restaurant listings in the Downtown region. Only administrators can see and use it. Messages are sent as HTML emails to each unique listing author.


Frequently Asked Questions

Does this require Elementor?

Elementor is required for the {C} > Bulk Messages widget. The Explore page “Bulk Message” button works independently — it uses Elementor’s API internally to generate the modal form but doesn’t require Elementor page editing.

Do I need a child theme?

No. This plugin does not require a child theme and does not copy any template files.

Can guests send bulk messages?

Yes, if the “Guest (Not Loggedin)” role is included in the “Allowed User Roles” setting. However, guests can only use the Email delivery method since Direct Messages require a logged-in user.

What delivery methods are available?

Three methods: Direct Message (in-app) sends through MyListing’s messaging system; Email sends styled HTML emails; Both sends through both channels simultaneously.

How does admin approval work?

When enabled, submitted messages are saved with “Pending” status. The admin is notified via email, the admin message list, or both. The admin can then Approve (sends the messages), Decline (marks as declined), or Delete the message.

Can users choose their own delivery method?

Yes, if “Allow Users to Choose Delivery Method” is enabled. A dropdown appears in the form for users to select between Direct Message, Email, or Both.

What does the max send limit do?

It caps the number of listings targeted per single bulk message. If a query matches 1,000 listings but the limit is 500, only the first 500 receive the message.

Will the sender receive their own messages?

No. The plugin automatically filters out listings owned by the current user.

Are messages sent immediately?

If admin approval is disabled, messages are sent immediately upon form submission. If admin approval is enabled, messages are queued until an admin approves them.

How does email grouping work?

When using the Email delivery method, messages are grouped by author. If one author owns multiple target listings, they receive a single email listing all their relevant listings instead of separate emails for each listing.

Where can I see all messages?

In the WordPress admin under Bulk Messages (top-level menu). This shows a table of all messages with their status, details, and action links.

Does the plugin clean up after deactivation?

The plugin unschedules its background tasks on deactivation. The database table and settings are preserved for reactivation. To fully remove all data, delete the plugin.

Can I send to specific listings only?

Yes, using the “Select a list of listings” repeater control in the Elementor widget. You can also combine it with other filters.


Troubleshooting

Explore Page Button Not Appearing

CauseSolution
Not enabled in settingsGo to Bulk Messages → Settings and check “Enable Bulk Message button on Explore Widget.”
User role not allowedMake sure the current user’s role is included in the “Allowed User Roles” setting.
User not logged inIf the “Guest” role is not in the allowed roles, only logged-in users will see the button.
Plugin not activatedGo to Plugins → Installed Plugins and verify the plugin is active.

Elementor Widget Not Showing on the Page

CauseSolution
User role not allowedThe widget’s “Allowed on User Roles” control determines who can see the form. Make sure the visiting user’s role is included.
No matching listingsIf the configured filters don’t match any published listings, the form may show a count of 0. Check your filter settings.
Elementor not activeThe widget requires Elementor to be installed and activated.

Messages Not Being Sent

CauseSolution
Admin approval enabledIf admin approval is on, messages are held pending until an admin approves them. Check the Bulk Messages admin page for pending messages.
Rate limit reachedIf the user has reached their message limit for the current period, sending is blocked. The counter resets automatically when the time period expires.
No valid recipientsIf all matching listings are owned by the sender, there are no recipients. The plugin filters out the sender’s own listings.
Direct Message requires loginThe “Direct Message (In-App)” delivery method requires the sender to be logged in. Guests can only use the Email method.

Admin Not Receiving Approval Notifications

CauseSolution
Wrong email addressCheck the “Admin Notification Email” setting. It defaults to the site admin email.
Approval method set to “Admin List” onlyIf the approval method is set to “Admin List,” no email is sent. The admin must check the Bulk Messages page. Change to “Email” or “Both” for email notifications.
Email delivery issuesWordPress email may be blocked by the hosting environment. Consider using an SMTP plugin for reliable email delivery.

reCAPTCHA Not Working

CauseSolution
Not configured in MyListingreCAPTCHA is configured through MyListing’s built-in settings, not through this plugin. The plugin only toggles whether to require it. Set up your reCAPTCHA keys in MyListing first.

Listing Count Shows 0 on the Form

CauseSolution
Filters too restrictiveThe configured listing filters may not match any published listings. Broaden or adjust the filters in the Elementor widget or settings.
No published listingsOnly published listings are included in the query. Draft, pending, or expired listings are excluded.

“MyListing Theme Not Detected” Error

The MyListing theme must be installed and active. Go to Appearance → Themes to verify.


For further support, visit codicts.com or contact us at support@codicts.com.

CoDicts Co., Ltd. © 2021-2026. All rights reserved