prefix . 'email_logs'; $charset_collate = $wpdb->get_charset_collate(); $sql = "CREATE TABLE $table_name ( id mediumint(9) NOT NULL AUTO_INCREMENT, user_email varchar(100) NOT NULL, email_subject varchar(255) NOT NULL, status varchar(20) NOT NULL, timestamp datetime DEFAULT CURRENT_TIMESTAMP NOT NULL, PRIMARY KEY (id) ) $charset_collate;"; require_once( ABSPATH . 'wp-admin/includes/upgrade.php' ); dbDelta( $sql ); // Create table for email open logs $table_name = $wpdb->prefix . 'email_opens'; $sql = "CREATE TABLE $table_name ( id mediumint(9) NOT NULL AUTO_INCREMENT, user_email varchar(100) NOT NULL, timestamp datetime DEFAULT CURRENT_TIMESTAMP NOT NULL, PRIMARY KEY (id) ) $charset_collate;"; dbDelta( $sql ); } // Include admin functionality require_once plugin_dir_path( __FILE__ ) . 'custom-emailer-admin.php'; // Function to retrieve user emails from comments function custom_emailer_get_user_emails_from_comments() { global $wpdb; // Query to retrieve unique email addresses from comments $query = "SELECT DISTINCT comment_author_email FROM {$wpdb->comments}"; // Execute the query $results = $wpdb->get_results( $query ); $emails = array(); // Collect email addresses into an array foreach ( $results as $result ) { $emails[] = $result->comment_author_email; } return $emails; } // Function to send email with tracking pixel function custom_emailer_send_email( $user_email, $email_subject, $email_content ) { global $wpdb; // Get user's name from comments $query = "SELECT DISTINCT comment_author FROM {$wpdb->comments} WHERE comment_author_email = %s"; $user_name = $wpdb->get_var( $wpdb->prepare( $query, $user_email ) ); // Tracking pixel $tracking_pixel = ''; // Load header and footer content $header_content = file_get_contents( plugin_dir_path( __FILE__ ) . 'email-header.html' ); $footer_content = file_get_contents( plugin_dir_path( __FILE__ ) . 'email-footer.html' ); // Construct the full email content with tracking pixel $full_email_content = $header_content . "

Beste, $user_name!

" . $email_content . $tracking_pixel . $footer_content; // Set headers $headers = array( 'Content-Type: text/html; charset=UTF-8', 'From: Mijn-restaurant.nl ', ); // Send email wp_mail( $user_email, $email_subject, $full_email_content, $headers ); // Log the email custom_emailer_log_email( $user_email, $email_subject ); } // Function to log sent emails function custom_emailer_log_email( $user_email, $email_subject ) { global $wpdb; $table_name = $wpdb->prefix . 'email_logs'; $wpdb->insert( $table_name, array( 'user_email' => $user_email, 'email_subject' => $email_subject, 'status' => 'sent', 'timestamp' => current_time( 'mysql' ), ) ); } // Function to log email opens function custom_emailer_log_email_open( $user_email ) { global $wpdb; $table_name = $wpdb->prefix . 'email_opens'; $wpdb->insert( $table_name, array( 'user_email' => $user_email, 'timestamp' => current_time( 'mysql' ), ) ); } Inloggen ‹ Mijn-restaurant – Reserveer bij de beste restaurants van Nederland — WordPress

Mogelijk gemaakt door WordPress

← Ga naar Mijn-restaurant – Reserveer bij de beste restaurants van Nederland