') !== false || strpos($message, '') !== false || strpos($message, '') !== false); if ($is_html) { $res = MailService::sendMail($to, $subject, $message); } else { $html_message = nl2br(htmlspecialchars($message)); $res = MailService::sendMail($to, $subject, $html_message, $message); } return $res['success'] ?? false; } return false; } } // Create table on activation register_activation_hook(__FILE__, 'gamepulse_newsletter_install'); function gamepulse_newsletter_install() { global $wpdb; $table_name = $wpdb->prefix . 'gamepulse_subscriptions'; $charset_collate = $wpdb->get_charset_collate(); $sql = "CREATE TABLE IF NOT EXISTS $table_name ( id mediumint(9) NOT NULL AUTO_INCREMENT, email varchar(100) NOT NULL, created_at datetime DEFAULT CURRENT_TIMESTAMP NOT NULL, PRIMARY KEY (id), UNIQUE KEY email (email) ) $charset_collate;"; require_once(ABSPATH . 'wp-admin/includes/upgrade.php'); dbDelta($sql); } // Shortcode to display the form add_shortcode('gamepulse_newsletter', 'gamepulse_newsletter_form_shortcode'); function gamepulse_newsletter_form_shortcode() { ob_start(); ?>

Stay in the Loop

Get the latest gaming news, reviews, and "realises" delivered to your inbox.

'Please enter a valid email address.']); } global $wpdb; $table_name = $wpdb->prefix . 'gamepulse_subscriptions'; // Check if already subscribed $exists = $wpdb->get_var($wpdb->prepare("SELECT COUNT(*) FROM $table_name WHERE email = %s", $email)); if ($exists) { wp_send_json_error(['message' => 'You are already subscribed!']); } $inserted = $wpdb->insert( $table_name, ['email' => $email], ['%s'] ); if ($inserted) { // Send notification to admin using MailService if (file_exists(ABSPATH . 'mail/MailService.php')) { require_once ABSPATH . 'mail/MailService.php'; $site_name = get_bloginfo('name'); MailService::sendMail( null, // Fallback to MAIL_TO "New Subscriber for $site_name", "

A new user has subscribed to your newsletter: $email

", "A new user has subscribed to your newsletter: $email" ); } wp_send_json_success(['message' => 'Thank you for subscribing!']); } else { wp_send_json_error(['message' => 'Subscription failed. Please try again later.']); } }