Core
1 month ago
Util
1 month ago
Check_Email_Encode_Tab.php
1 month ago
Check_Email_Notify_Tab.php
1 month ago
Check_Email_SMTP_Tab.php
1 month ago
class-check-email-header-parser.php
1 month ago
class-check-email-log-autoloader.php
1 month ago
class-check-email-newsletter.php
1 month ago
deactivate-feedback.php
1 month ago
helper-function.php
1 month ago
install.php
1 month ago
install.php
79 lines
| 1 | <?php |
| 2 | /** |
| 3 | * Handle installation and db table creation |
| 4 | */ |
| 5 | |
| 6 | defined( 'ABSPATH' ) || exit; // Exit if accessed directly |
| 7 | // phpcs:ignore WordPress.NamingConventions.PrefixAllGlobals.NonPrefixedClassFound |
| 8 | class Check_Email_Log_Init { |
| 9 | |
| 10 | public static function on_activate( $network_wide ) { |
| 11 | global $wpdb; |
| 12 | |
| 13 | if ( is_multisite() && $network_wide ) { |
| 14 | foreach ( get_sites() as $site ) { |
| 15 | switch_to_blog( $site->blog_id ); |
| 16 | self::create_checkemaillog_table(); |
| 17 | restore_current_blog(); |
| 18 | } |
| 19 | } else { |
| 20 | self::create_checkemaillog_table(); |
| 21 | } |
| 22 | } |
| 23 | |
| 24 | public static function on_create_blog( $blog_id, $user_id, $domain, $path, $site_id, $meta ) { |
| 25 | if ( is_plugin_active_for_network( 'check-email-log/check-email.php' ) ) { |
| 26 | switch_to_blog( $blog_id ); |
| 27 | self::create_checkemaillog_table(); |
| 28 | restore_current_blog(); |
| 29 | } |
| 30 | } |
| 31 | |
| 32 | |
| 33 | public static function on_delete_blog( $tables ) { |
| 34 | global $wpdb; |
| 35 | $tables[] = $wpdb->prefix . Check_Email_Log::TABLE_NAME; |
| 36 | return $tables; |
| 37 | } |
| 38 | |
| 39 | private static function create_checkemaillog_table() { |
| 40 | global $wpdb; |
| 41 | |
| 42 | $table_name = $wpdb->prefix . Check_Email_Log::TABLE_NAME; |
| 43 | $charset_collate = $wpdb->get_charset_collate(); |
| 44 | // phpcs:disable. |
| 45 | if ( $wpdb->get_var( $wpdb->prepare( "show tables like %s",$wpdb->esc_like( $table_name )) ) != $table_name ) { |
| 46 | |
| 47 | $sql = 'CREATE TABLE ' . $table_name . ' ( |
| 48 | id mediumint(9) NOT NULL AUTO_INCREMENT, |
| 49 | to_email VARCHAR(100) NOT NULL, |
| 50 | subject VARCHAR(250) NOT NULL, |
| 51 | message TEXT NOT NULL, |
| 52 | backtrace_segment TEXT NOT NULL, |
| 53 | open_tracking_id VARCHAR(250) NOT NULL, |
| 54 | open_count VARCHAR(250) NOT NULL, |
| 55 | headers TEXT NOT NULL, |
| 56 | attachments TEXT NOT NULL, |
| 57 | sent_date timestamp NOT NULL, |
| 58 | PRIMARY KEY (id) |
| 59 | ) ' . $charset_collate . ' ;'; |
| 60 | |
| 61 | require_once( ABSPATH . 'wp-admin/includes/upgrade.php' ); |
| 62 | dbDelta( $sql ); |
| 63 | |
| 64 | add_option( Check_Email_Log::DB_OPTION_NAME, Check_Email_Log::DB_VERSION ); |
| 65 | } |
| 66 | // phpcs:enable. |
| 67 | } |
| 68 | } |
| 69 | |
| 70 | // When the Plugin installed |
| 71 | register_activation_hook( EMAIL_LOG_PLUGIN_FILE, array( 'Check_Email_Log_Init', 'on_activate' ) ); |
| 72 | |
| 73 | // when a new blog is created in multisite |
| 74 | add_action( 'wpmu_new_blog', array( 'Check_Email_Log_Init', 'on_create_blog' ), 10, 6 ); |
| 75 | |
| 76 | // when a blog is deleted in multisite |
| 77 | add_filter( 'wpmu_drop_tables', array( 'Check_Email_Log_Init', 'on_delete_blog' ) ); |
| 78 | ?> |
| 79 |