Changeset 3270795
- Timestamp:
- 04/11/2025 04:43:06 AM (11 months ago)
- Location:
- wp-mailing-group/trunk
- Files:
-
- 5 edited
-
lib/mailinggroupclass.php (modified) (1 diff)
-
mailing-group-module.php (modified) (11 diffs)
-
readme.txt (modified) (2 diffs)
-
template/mg_importuser.php (modified) (1 diff)
-
template/mg_mailinggroupadd.php (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
wp-mailing-group/trunk/lib/mailinggroupclass.php
r3270008 r3270795 210 210 return false; 211 211 } 212 213 function getUserGroupV2($tblname,$id,$type='0') { 214 global $wpdb; 215 216 $sSQL = $wpdb->prepare("SELECT * FROM %s WHERE user_id = %d", $tblname, $id); 217 $res = $wpdb->get_results($sSQL); 218 $arrresult = array(); 219 220 if(count($res)>0) { 221 foreach($res as $resg) { 222 $arrresult[$resg->group_id] = $resg->group_email_format; 223 } 224 } 225 return $arrresult; 226 } 227 228 function getGroupUserCountV2($tblname,$id) { 229 global $wpdb; 230 231 $sSQL = $wpdb->prepare("SELECT * FROM %s WHERE group_id = %d", $tblname, $id); 232 return $wpdb->get_results($sSQL); 233 } 234 235 236 function getCompleteUserGroupsV2($tblname, $tblnameuser,$id) { 237 global $wpdb; 238 239 $sSQL = $wpdb->prepare( 240 "select t1.*,t2.* from `" . $wpdb->_real_escape($tblname) . "` t1 inner join `" . $wpdb->_real_escape($tblnameuser) . "` t2 on t1.group_id = t2.id and t1.user_id = %d", 241 $id 242 ); 243 $res = $wpdb->get_results($sSQL); 244 245 if(count($res)>0) { 246 foreach($res as $resg) { 247 $arrresult[] = $resg; 248 } 249 return $arrresult; 250 } 251 } 252 253 function addUserGroupV2($tblname,$id,$grpinfo) { 254 global $wpdb; 255 256 $myFields="id,user_id,group_id,group_email_format"; 257 258 if(count($grpinfo['group_name'])>0) { 259 foreach($grpinfo['group_name'] as $key => $group_id) { 260 $emailformat = $grpinfo['email_format_'.$group_id]; 261 262 $sSQL = $wpdb->prepare( 263 "INSERT INTO `" . $wpdb->_real_escape($tblname) . "` ($myFields) VALUES ('', %d, %d, %s)", 264 $id, 265 $group_id, 266 $emailformat 267 ); 268 $wpdb->query($sSQL); 269 } 270 } 271 return true; 272 } 273 274 function getGroupSerialized($grpinfo) { 275 276 global $wpdb; 277 278 if(count($grpinfo['group_name'])>0) { 279 280 foreach($grpinfo['group_name'] as $key => $group_id) { 281 282 $emailformat = $grpinfo['email_format_'.$group_id]; 283 284 $arrresult[$group_id] = $emailformat; 285 286 } 287 288 } 289 290 return $arrresult; 291 292 } 293 294 295 function deleteUserGroupV2($tblname,$groupid,$userid) { 296 global $wpdb; 297 298 if($groupid!='' && $userid!='') { 299 $sSQL = $wpdb->prepare("DELETE FROM %s WHERE user_id = %d AND group_id = %d", $tblname, $userid, $groupid); 300 $wpdb->query($sSQL); 301 } 302 return true; 303 } 304 305 306 function updUserGroupV2($tblname,$id,$grpinfo) { 307 global $wpdb; 308 309 $myFields="id,user_id,group_id,group_email_format"; 310 311 $getCurrentGroups = $this->getUserGroupV2($tblname,$id,'1'); 312 313 if(count($grpinfo['group_name'])>0 && $getCurrentGroups) { 314 foreach($grpinfo['group_name'] as $key => $group_id) { 315 $emailformat = $grpinfo['email_format_'.$group_id]; 316 317 if(!in_array($group_id,$getCurrentGroups)) { 318 $sSQL = $wpdb->prepare( 319 "INSERT INTO `" . $wpdb->_real_escape($tblname) . "` ($myFields) VALUES ('', %d, %d, %s)", 320 $id, 321 $group_id, 322 $emailformat 323 ); 324 $wpdb->query($sSQL); 325 } 326 } 327 } 328 return true; 329 } 330 331 function addUserGroupTaxonomyV2($tblname, $id, $arrtoInsert) { 332 global $wpdb; 333 if(count($arrtoInsert)>0) { 334 $myFields = "id,user_id,group_id,group_email_format"; 335 336 foreach($arrtoInsert as $group_id => $emailformat) { 337 // Check if record exists using prepared statement with direct table name 338 $sSQL = "SELECT * FROM `" . $wpdb->_real_escape($tblname) . "` WHERE user_id = %d AND group_id = %d"; 339 $sSQL = $wpdb->prepare($sSQL, $id, $group_id); 340 $res = $wpdb->get_results($sSQL); 341 342 if(count($res)>0) { 343 // Delete existing record using prepared statement with direct table name 344 $sSQLdel = "DELETE FROM `" . $wpdb->_real_escape($tblname) . "` WHERE user_id = %d"; 345 $sSQLdel = $wpdb->prepare($sSQLdel, $id); 346 $wpdb->query($sSQLdel); 347 348 // Insert new record using prepared statement with direct table name 349 $uSQL = "INSERT INTO `" . $wpdb->_real_escape($tblname) . "` ($myFields) VALUES ('', %d, %d, %s)"; 350 $uSQL = $wpdb->prepare($uSQL, $id, $group_id, $emailformat); 351 $wpdb->query($uSQL); 352 } else { 353 // Insert new record using prepared statement with direct table name 354 $sSQL = "INSERT INTO `" . $wpdb->_real_escape($tblname) . "` ($myFields) VALUES ('', %d, %d, %s)"; 355 $sSQL = $wpdb->prepare($sSQL, $id, $group_id, $emailformat); 356 $wpdb->query($sSQL); 357 } 358 } 359 } 360 } 361 362 function updUserGroupTaxonomyV2($tblname, $id, $arrtoInsert) { 363 global $wpdb; 364 365 // Delete existing records using prepared statement with direct table name 366 $sSQLdel = "DELETE FROM `" . $wpdb->_real_escape($tblname) . "` WHERE user_id = %d"; 367 $sSQLdel = $wpdb->prepare($sSQLdel, $id); 368 $wpdb->query($sSQLdel); 369 370 if(count($arrtoInsert)>0) { 371 $myFields = "id,user_id,group_id,group_email_format"; 372 373 foreach($arrtoInsert as $group_id => $emailformat) { 374 // Insert new record using prepared statement with direct table name 375 $sSQL = "INSERT INTO `" . $wpdb->_real_escape($tblname) . "` ($myFields) VALUES ('', %d, %d, %s)"; 376 $sSQL = $wpdb->prepare($sSQL, $id, $group_id, $emailformat); 377 $wpdb->query($sSQL); 378 } 379 } 380 } 212 381 } -
wp-mailing-group/trunk/mailing-group-module.php
r3270015 r3270795 1 1 <?php /** 2 2 * @package Mailing_group_module 3 * @version 3.0. 13 * @version 3.0.2 4 4 */ 5 5 /* 6 Plugin Name: Mailing Group Listserv6 Plugin Name: WP Mailing Group 7 7 Plugin URI: https://www.wpmailinggroup.com 8 8 Description: Connect yourselves with a mailing group run from your WordPress website! This is NOT a one-way mailing or announcement list from an administrator to a group, but a Group email list where all subscribers can exchange messages via one central email address. (NB: POP / IMAP email box required - Cron optional but recommended for low traffic websites) 9 9 Author: Yamna Khawaja 10 10 Author URI: https://www.wpmailinggroup.com/ 11 Version: 3.0. 111 Version: 3.0.2 12 12 License: GPL v2 or later 13 13 License URI: https://www.gnu.org/licenses/gpl-2.0.html … … 39 39 40 40 $WPMG_SETTINGS = get_option("WPMG_SETTINGS"); 41 $MG_VERSION_NO = '3.0. 1';41 $MG_VERSION_NO = '3.0.2'; 42 42 $WPMG_SETTINGS['MG_VERSION_NO'] = $MG_VERSION_NO; 43 43 $WPMG_SETTINGS['MG_PLUGIN_TYPE'] = 'FREE'; … … 115 115 global $wpdb, $table_name_group, $WPMG_SETTINGS, $table_name_message, $table_name_requestmanager, $table_name_requestmanager_taxonomy, $table_name_user_taxonomy, $table_name_parsed_emails, $table_name_sent_emails, $memberLimit, $table_name_attachments, $table_name_users, $table_name_usermeta; 116 116 $charset_collate = $wpdb->get_charset_collate(); 117 require_once(ABSPATH . 'wp-admin/includes/upgrade.php'); 118 117 119 /* ADD CONFIG OPTION TO OPTION TABLE*/ 118 120 … … 142 144 $MG_SUPPORT_EMAIL = (isset($wpmgs['MG_SUPPORT_EMAIL']) && $wpmgs['MG_SUPPORT_EMAIL']!=''?esc_html($wpmgs['MG_SUPPORT_EMAIL']):'[email protected]'); 143 145 $MG_SUPPORT_PHONE = (isset($wpmgs['MG_SUPPORT_PHONE']) && $wpmgs['MG_SUPPORT_PHONE']!=''?esc_html($wpmgs['MG_SUPPORT_PHONE']):'1800-123-1234'); 144 $MG_VERSION_NO = (isset($wpmgs['MG_VERSION_NO']) && $wpmgs['MG_VERSION_NO']!=''?esc_html($wpmgs['MG_VERSION_NO']):'3.0. 1');146 $MG_VERSION_NO = (isset($wpmgs['MG_VERSION_NO']) && $wpmgs['MG_VERSION_NO']!=''?esc_html($wpmgs['MG_VERSION_NO']):'3.0.2'); 145 147 146 148 $wpmg_setting = array( … … 162 164 163 165 164 if ($wpdb->get_var("SHOW TABLES LIKE '$table_name_group'") != $table_name_group) { 166 $sql = "CREATE TABLE $table_name_group ( 167 id mediumint(9) NOT NULL AUTO_INCREMENT, 168 title varchar(200) NOT NULL, 169 use_in_subject int(2) NOT NULL DEFAULT 0, 170 email varchar(255) NOT NULL, 171 password varchar(100) NOT NULL, 172 pop_server_type varchar(50) NOT NULL, 173 smtp_server varchar(100) NOT NULL, 174 pop_server varchar(100) NOT NULL, 175 smtp_port varchar(20) NOT NULL, 176 pop_port varchar(20) NOT NULL, 177 pop_ssl tinyint(2) NOT NULL DEFAULT 0, 178 smtp_username varchar(100) NOT NULL, 179 smtp_password varchar(100) NOT NULL, 180 pop_username varchar(100) NOT NULL, 181 pop_password varchar(100) NOT NULL, 182 archive_message tinyint(2) NOT NULL DEFAULT 0, 183 auto_delete tinyint(2) NOT NULL DEFAULT 0, 184 auto_delete_limit tinyint(2) NOT NULL DEFAULT 0, 185 footer_text text NOT NULL, 186 sender_name varchar(50) NOT NULL, 187 sender_email varchar(50) NOT NULL, 188 status tinyint(2) NOT NULL DEFAULT 0, 189 visibility enum('1','2','3') NOT NULL DEFAULT '1', 190 mail_type varchar(50) NOT NULL, 191 PRIMARY KEY (id) 192 ) $charset_collate;"; 193 194 require_once ABSPATH . 'wp-admin/includes/upgrade.php'; 195 dbDelta($sql); 196 // } 197 198 if ($wpdb->get_var("SHOW TABLES LIKE $table_name_message") != $table_name_message) { 199 $sql = "CREATE TABLE $table_name_message ( 200 id mediumint(9) NOT NULL AUTO_INCREMENT, 201 title varchar(255) DEFAULT NULL, 202 message_type varchar(255) NOT NULL, 203 message_subject varchar(255) NOT NULL, 204 description text, 205 status enum('0','1') DEFAULT '0', 206 PRIMARY KEY (id) 207 ) $charset_collate;"; 165 208 166 $sql = "CREATE TABLE IF NOT EXISTS $table_name_group (167 `id` mediumint(9) NOT NULL AUTO_INCREMENT,168 169 `title` varchar(200) NOT NULL,170 171 `use_in_subject` int(2) NOT NULL DEFAULT '0',172 173 `email` varchar(255) NOT NULL,174 175 `password` varchar(100) NOT NULL,176 177 `pop_server_type` varchar(50) NOT NULL,178 179 `smtp_server` varchar(100) NOT NULL,180 181 `pop_server` varchar(100) NOT NULL,182 183 `smtp_port` varchar(20) NOT NULL,184 185 `pop_port` varchar(20) NOT NULL,186 187 `pop_ssl` tinyint(2) NOT NULL DEFAULT '0',188 189 `smtp_username` varchar(100) NOT NULL,190 191 `smtp_password` varchar(100) NOT NULL,192 193 `pop_username` varchar(100) NOT NULL,194 195 `pop_password` varchar(100) NOT NULL,196 197 `archive_message` tinyint(2) NOT NULL DEFAULT '0',198 199 `auto_delete` tinyint(2) NOT NULL DEFAULT '0',200 201 `auto_delete_limit` tinyint(2) NOT NULL DEFAULT '0',202 203 `footer_text` text NOT NULL,204 205 `sender_name` varchar(50) NOT NULL,206 207 `sender_email` varchar(50) NOT NULL,208 209 `status` tinyint(2) NOT NULL DEFAULT '0',210 211 `visibility` enum('1','2','3') NOT NULL DEFAULT '1',212 213 `mail_type` varchar(50) NOT NULL,214 215 PRIMARY KEY (`id`)216 217 ) ENGINE=MyISAM $charset_collate AUTO_INCREMENT=1;";218 require_once(ABSPATH . "wp-admin/includes/upgrade.php");219 dbDelta($sql);220 }221 222 if ($wpdb->get_var("SHOW TABLES LIKE '$table_name_message'") != $table_name_message) {223 $sql = "CREATE TABLE IF NOT EXISTS $table_name_message (224 225 `id` mediumint(9) NOT NULL AUTO_INCREMENT,226 227 `title` varchar(255) DEFAULT NULL,228 229 `message_type` varchar(255) NOT NULL,230 231 `message_subject` varchar(255) NOT NULL,232 233 `description` text,234 235 `status` enum('0','1') DEFAULT '0',236 237 PRIMARY KEY (`id`)238 239 ) ENGINE=MyISAM $charset_collate AUTO_INCREMENT=1;";240 209 $sql2 = "INSERT INTO $table_name_message (id,title,description,status) VALUES ('','Credentials Check','Hello {%name%}, 241 210 … … 266 235 } 267 236 268 if ($wpdb->get_var("SHOW TABLES LIKE '$table_name_requestmanager'") != $table_name_requestmanager) { 269 $sql = "CREATE TABLE IF NOT EXISTS $table_name_requestmanager ( 270 271 `id` int(9) NOT NULL AUTO_INCREMENT, 272 273 `name` varchar(200) NOT NULL, 274 275 `username` varchar(150) NOT NULL, 276 277 `email` varchar(255) NOT NULL, 278 279 `message_sent` int(2) NOT NULL DEFAULT '0', 280 281 `status` tinyint(2) NOT NULL, 282 283 PRIMARY KEY (`id`) 284 285 ) ENGINE=MyISAM $charset_collate AUTO_INCREMENT=1"; 237 238 $sql = "CREATE TABLE $table_name_requestmanager ( 239 id int(9) NOT NULL AUTO_INCREMENT, 240 name varchar(200) NOT NULL, 241 username varchar(150) NOT NULL, 242 email varchar(255) NOT NULL, 243 message_sent int(2) NOT NULL DEFAULT 0, 244 status tinyint(2) NOT NULL, 245 PRIMARY KEY (id) 246 ) $charset_collate;"; 286 247 require_once(ABSPATH . "wp-admin/includes/upgrade.php"); 287 248 dbDelta($sql); 288 }else{ 289 //dbdelta not updating old tables so this is a workaround 290 $wpdb->query("ALTER TABLE $table_name_requestmanager CHARACTER SET utf8 COLLATE utf8_unicode_ci"); 291 } 249 292 250 293 251 if ($wpdb->get_var("SHOW TABLES LIKE '$table_name_requestmanager_taxonomy'") != $table_name_requestmanager_taxonomy) { 294 $sql = "CREATE TABLE IF NOT EXISTS $table_name_requestmanager_taxonomy ( 295 296 `id` int(50) NOT NULL AUTO_INCREMENT, 297 298 `user_id` int(50) NOT NULL, 299 300 `group_id` int(50) NOT NULL, 301 302 `group_email_format` tinyint(2) NOT NULL DEFAULT '0', 303 304 PRIMARY KEY (`id`) 305 306 ) ENGINE=MyISAM $charset_collate AUTO_INCREMENT=1"; 307 require_once(ABSPATH . "wp-admin/includes/upgrade.php"); 252 $sql = "CREATE TABLE $table_name_requestmanager_taxonomy ( 253 id int(11) NOT NULL AUTO_INCREMENT, 254 user_id int(11) NOT NULL, 255 group_id int(11) NOT NULL, 256 group_email_format tinyint(2) NOT NULL DEFAULT 0, 257 PRIMARY KEY (id) 258 ) $charset_collate;"; 308 259 $result=dbDelta($sql); 309 }else{310 //dbdelta not updating old tables so this is a workaround311 $wpdb->query("ALTER TABLE $table_name_requestmanager_taxonomy CHARACTER SET utf8 COLLATE utf8_unicode_ci");312 260 } 313 261 314 262 if ($wpdb->get_var("SHOW TABLES LIKE '$table_name_user_taxonomy'") != $table_name_user_taxonomy) { 315 $sql = "CREATE TABLE IF NOT EXISTS $table_name_user_taxonomy ( 316 317 `id` int(50) NOT NULL AUTO_INCREMENT, 318 319 `user_id` int(50) NOT NULL, 320 321 `group_id` int(50) NOT NULL, 322 323 `group_email_format` tinyint(2) NOT NULL, 324 325 PRIMARY KEY (`id`) 326 327 ) ENGINE=MyISAM $charset_collate AUTO_INCREMENT=1"; 263 $sql = "CREATE TABLE $table_name_user_taxonomy ( 264 id int(11) NOT NULL AUTO_INCREMENT, 265 user_id int(11) NOT NULL, 266 group_id int(11) NOT NULL, 267 group_email_format tinyint(2) NOT NULL, 268 PRIMARY KEY (id) 269 ) $charset_collate;"; 328 270 require_once(ABSPATH . "wp-admin/includes/upgrade.php"); 329 271 dbDelta($sql); … … 331 273 332 274 if ($wpdb->get_var("SHOW TABLES LIKE '$table_name_parsed_emails'") != $table_name_parsed_emails) { 333 $sql = "CREATE TABLE IF NOT EXISTS $table_name_parsed_emails ( 334 335 `id` bigint(100) NOT NULL AUTO_INCREMENT, 336 337 `type` varchar(50) NOT NULL DEFAULT 'email', 338 339 `email_bounced` varchar(100) NOT NULL, 340 341 `email_from` varchar(255) NOT NULL, 342 343 `email_from_name` varchar(255) NOT NULL, 344 345 `email_to` varchar(255) NOT NULL, 346 347 `email_to_name` varchar(255) NOT NULL, 348 349 `email_subject` varchar(255) NOT NULL, 350 351 `email_content` longblob NOT NULL, 352 353 `email_group_id` int(20) NOT NULL, 354 355 `status` tinyint(2) NOT NULL DEFAULT '0', 356 357 PRIMARY KEY (`id`) 358 359 ) ENGINE=MyISAM $charset_collate AUTO_INCREMENT=1"; 275 $sql = "CREATE TABLE $table_name_parsed_emails ( 276 id bigint(20) NOT NULL AUTO_INCREMENT, 277 type varchar(50) NOT NULL DEFAULT 'email', 278 email_bounced varchar(100) NOT NULL, 279 email_from varchar(255) NOT NULL, 280 email_from_name varchar(255) NOT NULL, 281 email_to varchar(255) NOT NULL, 282 email_to_name varchar(255) NOT NULL, 283 email_subject varchar(255) NOT NULL, 284 email_content longblob NOT NULL, 285 email_group_id int(11) NOT NULL, 286 status tinyint(2) NOT NULL DEFAULT 0, 287 PRIMARY KEY (id) 288 ) $charset_collate;"; 360 289 require_once(ABSPATH . "wp-admin/includes/upgrade.php"); 361 290 dbDelta($sql); … … 367 296 368 297 if ($wpdb->get_var("SHOW TABLES LIKE '$table_name_sent_emails'") != $table_name_sent_emails) { 369 $sql = "CREATE TABLE IF NOT EXISTS $table_name_sent_emails ( 370 371 `id` bigint(20) NOT NULL AUTO_INCREMENT, 372 373 `user_id` int(10) NOT NULL, 374 375 `email_id` int(10) NOT NULL, 376 377 `group_id` int(20) NOT NULL, 378 379 `sent_date` datetime NOT NULL, 380 381 `status` int(2) NOT NULL DEFAULT '0', 382 383 `error_msg` text NOT NULL, 384 385 PRIMARY KEY (`id`) 386 387 ) ENGINE=MyISAM $charset_collate AUTO_INCREMENT=1"; 298 $sql = "CREATE TABLE $table_name_sent_emails ( 299 id bigint(20) NOT NULL AUTO_INCREMENT, 300 user_id int(11) NOT NULL, 301 email_id int(11) NOT NULL, 302 group_id int(11) NOT NULL, 303 sent_date datetime NOT NULL, 304 status int(2) NOT NULL DEFAULT 0, 305 error_msg text NOT NULL, 306 PRIMARY KEY (id) 307 ) $charset_collate;"; 388 308 require_once(ABSPATH . "wp-admin/includes/upgrade.php"); 389 309 dbDelta($sql); … … 399 319 400 320 $col_names = $wpdb->get_results("SHOW COLUMNS FROM $table_name_group"); 401 321 $col_names_array = array(); 402 322 403 323 foreach( $col_names as $col_name ) { … … 425 345 426 346 if ($wpdb->get_var("SHOW TABLES LIKE '$table_name_attachments'") != $table_name_attachments) { 427 $sql = "CREATE TABLE IF NOT EXISTS $table_name_attachments ( 428 429 `id` bigint(20) NOT NULL AUTO_INCREMENT, 430 431 `group_id` int(10) NOT NULL, 432 433 `file_name` varchar(255) NOT NULL, 434 435 `size` varchar(55) NOT NULL, 436 437 `date` varchar(55) NOT NULL, 438 439 PRIMARY KEY (`id`) 440 441 ) ENGINE=MyISAM $charset_collate AUTO_INCREMENT=1"; 347 $sql = "CREATE TABLE $table_name_attachments ( 348 id bigint(20) NOT NULL AUTO_INCREMENT, 349 group_id int(11) NOT NULL, 350 file_name varchar(255) NOT NULL, 351 size varchar(55) NOT NULL, 352 date varchar(55) NOT NULL, 353 PRIMARY KEY (id) 354 ) $charset_collate;"; 442 355 require_once(ABSPATH . "wp-admin/includes/upgrade.php"); 443 356 dbDelta($sql); … … 788 701 { 789 702 global $wpdb, $objMem, $_POST, $table_name_group; 790 parse_str($_POST['data'], $_POST); 703 if(isset($_POST['data'])){ //its a group update/edit call 704 parse_str($_POST['data'], $_POST); 705 } 791 706 $_POST = stripslashes_deep( $_POST ); 792 707 $addme = isset($_POST['addme']) ? absint($_POST['addme']) : null; -
wp-mailing-group/trunk/readme.txt
r3270028 r3270795 2 2 Contributors: marcusbs 3 3 Donate link: https://www.wpmailinggroup.com 4 Tags: listserv, mailing group, listserv , email discussion, mailing list4 Tags: listserv, mailing group, listserve, email discussion, mailing list 5 5 Requires at least: 3.0 6 6 Tested up to: 6.7 7 7 Tested up to PHP: 8.2 8 Stable tag: 3.0. 18 Stable tag: 3.0.2 9 9 License: GPLv2 or later 10 10 License URI: https://www.gnu.org/licenses/gpl-2.0.html 11 11 12 13 Creates a two-way mailing list (Listserv) on your WordPress site—allowing users to subscribe and exchange emails directly via their inboxes, just like Google Groups or Mailman. 12 Creates a Mailing Group on your site to which users can subscribe, messages sent to the group's email address will be forwarded to all members. 14 13 15 14 == Description == 16 15 17 <p><strong>Create a Two-Way Email Group (Listserv) in WordPress — Let Users Subscribe, Send, and Receive Group Emails Without Logging In.</strong></p> 18 19 <p><strong>Mailing Group Listserv</strong> is a powerful and easy-to-use <strong>WordPress email group plugin</strong> that lets you create a full-featured <strong>listserv</strong>, <strong>email discussion group</strong>, or <strong>group mailing list</strong> right from your WordPress dashboard.</p> 20 21 <p>With this plugin, you can set up a <strong>two-way email group</strong> where users can <strong>subscribe</strong> and <strong>exchange emails</strong> using their regular email apps like Gmail, Outlook, or Apple Mail—no need to log in to your WordPress site.</p> 22 23 <p><strong>Key Features:</strong></p> 24 <ul> 25 <li>Create a <strong>group email list</strong> in WordPress</li> 26 <li>Send email to all group members from any email client</li> 27 <li>Receive replies from group members (two-way communication)</li> 28 <li>Works like <strong>Google Groups</strong>, <strong>Yahoo Groups</strong>, <strong>Mailman</strong>, or <strong>phpList</strong></li> 29 <li>No third-party service required—<strong>fully self-hosted</strong></li> 30 <li>Great for clubs, teams, churches, schools, or organizations</li> 31 </ul> 32 33 <p>Subscribers simply send an email to the group's address, and the message is automatically <strong>forwarded to all other members</strong>, enabling seamless email discussions.</p> 34 35 <p>Unlike one-way announcement lists, this plugin supports <strong>true two-way messaging</strong>, making it ideal for interactive discussions and community engagement.</p> 36 37 <p>This plugin is perfect if you’re searching for:</p> 38 <ul> 39 <li><em>email group plugin for WordPress</em></li> 40 <li><em>WordPress listserv plugin</em></li> 41 <li><em>self-hosted email discussion group</em></li> 42 <li><em>WordPress plugin like Google Groups</em></li> 43 <li><em>send email to all users plugin WordPress</em></li> 44 <li><em>two-way group email system WordPress</em></li> 45 </ul> 46 47 <p>Whether you’re managing a team, school, nonprofit, or private community, Mailing Group Listserv gives you the power to run your own <strong>email-based communication network</strong>—right from your WordPress site.</p> 48 16 The Mailing Group Listserv plugin allows you to run a Mailing Group, also known as a Listserv, right from your WordPress website. You can sign up your users, friends, family etc, directly from your WordPress administration area, and they can then all exchange emails via their favourite email software, no need to login to wordpress dashboard. It has very easy to use intuitive interface and advanced debugging functions. This is NOT a one-way Announcement list where only YOU can email everyone else. Its a Two-Way mailing group just like Yahoo Groups, Google Groups etc (provides most functions of those groups but not all). It can be used as a partial alternative to php List and mailman. Its a wonderful wordpress group plugin to help you and your groups stay connected! - Premium version includes message moderation and archives. 17 <strong>Premium version offers Email message archives where so you can see all messages sent to mailing group in these archives. Users can also see archives of their groups. Pro version also supports email moderation.</strong> 49 18 50 19 <strong>Free Version - Features</strong> … … 163 132 == Changelog == 164 133 165 =3.0.1 =166 *Fixed bug in mailing group not updating.167 168 134 =3.0.0 = 169 135 *Fixed all problems in the plugin to comply to Wordpress coding standards. -
wp-mailing-group/trunk/template/mg_importuser.php
r3269093 r3270795 285 285 <td> 286 286 287 <input type="checkbox" id="selector" name="selectusers[]" value="<?php echo esc_ ($id); ?>" />287 <input type="checkbox" id="selector" name="selectusers[]" value="<?php echo esc_attr($id); ?>" /> 288 288 289 289 </td> -
wp-mailing-group/trunk/template/mg_mailinggroupadd.php
r3268122 r3270795 103 103 if(jQuery("#mail_group option:selected").val()=="") { alert("<?php esc_html_e("Please select email group.", 'wp-mailing-group'); ?>"); jQuery("#mail_group").focus(); return false;} 104 104 105 if(trim(jQuery("#email").val())=="" || trim(jQuery("#title").val())=='<?php esc_html_e("e.g. [email protected]", 'wp-mailing-group'); ?>') { alert("<?php esc_html_e("Please enter email address.", 'wp-mailing-group'); ?>"); jQuery("#email").focus(); return false; } 105 if(trim(jQuery("#email").val())=="" || trim(jQuery("#title").val())=='<?php echo esc_js(esc_html__("e.g. [email protected]", 'wp-mailing-group')); ?>') { 106 alert("<?php echo esc_js(esc_html__("Please enter email address.", 'wp-mailing-group')); ?>"); 107 jQuery("#email").focus(); 108 return false; 109 } 106 110 107 111 if(!checkemail(jQuery("#email").val())) { alert("<?php esc_html_e("Please enter valid email address.", 'wp-mailing-group'); ?>"); jQuery("#email").focus(); return false;} … … 160 164 161 165 var data = jQuery(this).serialize(); 162 jQuery.post(ajaxurl, data, function(response) { if(response=='exists') { jQuery("#ajaxMessages_inn").html( "<?php wpmg_showmessages("error", __("Mailing group already exists.", 'wp-mailing-group')); ?>"); } else if(response=='updated') { jQuery("#ajaxMessages").html("<?php wpmg_showmessages("updated", __("Mailing group has been updated successfully.", 'wp-mailing-group')); ?>"); showdatatable(); } else if(response=='added') { jQuery("#ajaxMessages").html("<?php wpmg_showmessages("updated", __("Mailing group has been added successfully.", 'wp-mailing-group')); ?>"); showdatatable();} else if(response=='free') { jQuery("#ajaxMessages").html("<?php wpmg_showmessages("error", __("You can only add one mailing group per domain, Please upgrade to Paid version for more features.", 'wp-mailing-group')); ?>"); showdatatable();}});166 jQuery.post(ajaxurl, data, function(response) { if(response=='exists') { jQuery("#ajaxMessages_inn").html('<?php wpmg_showmessages("error", __("Mailing group already exists.", 'wp-mailing-group')); ?>'); } else if(response=='updated') { jQuery("#ajaxMessages").html('<?php wpmg_showmessages("updated", __("Mailing group has been updated successfully.", 'wp-mailing-group')); ?>'); showdatatable(); } else if(response=='added') { jQuery("#ajaxMessages").html('<?php wpmg_showmessages("updated", __("Mailing group has been added successfully.", 'wp-mailing-group')); ?>'); showdatatable();} else if(response=='free') { jQuery("#ajaxMessages").html('<?php wpmg_showmessages("error", __("You can only add one mailing group per domain, Please upgrade to Paid version for more features.", 'wp-mailing-group')); ?>'); showdatatable();}}); 163 167 return false; 164 168 });
Note: See TracChangeset
for help on using the changeset viewer.