diff --git a/wp-content/plugins/subscribe2/.gitignore b/wp-content/plugins/subscribe2/.gitignore new file mode 100644 index 00000000..60801bf4 --- /dev/null +++ b/wp-content/plugins/subscribe2/.gitignore @@ -0,0 +1,14 @@ +config.codekit +.idea +.codekit-cache +/vendor/ +node_modules +zip +.DS_Store +nbproject +debug.log +npm-debug.log +.netbeans.xml +.vscode +build/* +!build/index.js diff --git a/wp-content/plugins/subscribe2/admin/send-email.php b/wp-content/plugins/subscribe2/admin/send-email.php new file mode 100644 index 00000000..3ca05367 --- /dev/null +++ b/wp-content/plugins/subscribe2/admin/send-email.php @@ -0,0 +1,143 @@ +' . esc_html__( 'Security error! Your request cannot be completed.', 'subscribe2' ) . '
' ); + } + + $subject = html_entity_decode( stripslashes( wp_kses( $this->substitute( $_POST['subject'] ), '' ) ), ENT_QUOTES ); + $body = wpautop( $this->substitute( stripslashes( $_POST['content'] ) ), true ); + if ( '' !== $current_user->display_name || '' !== $current_user->user_email ) { + $this->myname = html_entity_decode( $current_user->display_name, ENT_QUOTES ); + $this->myemail = $current_user->user_email; + } + if ( isset( $_POST['send'] ) ) { + if ( 'confirmed' === $_POST['what'] ) { + $recipients = $this->get_public(); + } elseif ( 'unconfirmed' === $_POST['what'] ) { + $recipients = $this->get_public( 0 ); + } elseif ( 'public' === $_POST['what'] ) { + $confirmed = $this->get_public(); + $unconfirmed = $this->get_public( 0 ); + $recipients = array_merge( (array) $confirmed, (array) $unconfirmed ); + } elseif ( is_numeric( $_POST['what'] ) ) { + $category = intval( $_POST['what'] ); + $recipients = $this->get_registered( "cats=$category" ); + } elseif ( 'all_users' === $_POST['what'] ) { + $recipients = $this->get_all_registered(); + } elseif ( 'all' === $_POST['what'] ) { + $confirmed = $this->get_public(); + $unconfirmed = $this->get_public( 0 ); + $registered = $this->get_all_registered(); + $recipients = array_merge( (array) $confirmed, (array) $unconfirmed, (array) $registered ); + } else { + $recipients = $this->get_registered(); + } + } elseif ( isset( $_POST['preview'] ) ) { + global $user_email; + $recipients[] = $user_email; + } + + $uploads = array(); + if ( ! empty( $_FILES ) ) { + foreach ( $_FILES['file']['name'] as $key => $value ) { + if ( 0 === $_FILES['file']['error'][ $key ] ) { + $file = array( + 'name' => $_FILES['file']['name'][ $key ], + 'type' => $_FILES['file']['type'][ $key ], + 'tmp_name' => $_FILES['file']['tmp_name'][ $key ], + 'error' => $_FILES['file']['error'][ $key ], + 'size' => $_FILES['file']['size'][ $key ], + ); + + $uploads[] = wp_handle_upload( + $file, + array( + 'test_form' => false, + ) + ); + } + } + } + $attachments = array(); + if ( ! empty( $uploads ) ) { + foreach ( $uploads as $upload ) { + if ( ! isset( $upload['error'] ) ) { + $attachments[] = $upload['file']; + } else { + $upload_error = $upload['error']; + } + } + } + + if ( empty( $body ) ) { + $error_message = __( 'Your email was empty', 'subscribe2' ); + $success = false; + } elseif ( isset( $upload_error ) ) { + $error_message = $upload_error; + $success = false; + } else { + $success = $this->mail( $recipients, $subject, $body, 'html', $attachments ); + $error_message = __( 'Check your settings and check with your hosting provider', 'subscribe2' ); + } + + if ( $success ) { + if ( isset( $_POST['preview'] ) ) { + $message = ' '; + } elseif ( isset( $_POST['send'] ) ) { + $message = ' '; + } + } else { + global $phpmailer; + $message = '' . __( 'Message failed!', 'subscribe2' ) . '
' . $error_message . $phpmailer->ErrorInfo; + } + echo '' . wp_kses_post( $message ) . '
' . esc_html__( 'Options reset!', 'subscribe2' ) . '
' . esc_html__( 'Preview message(s) sent to logged in user', 'subscribe2' ) . '
' . esc_html__( 'Attempt made to resend the Digest Notification email', 'subscribe2' ) . '
' . esc_html__( 'The Digest Notification email contained no post information. No email was sent', 'subscribe2' ) . '
' . esc_html__( 'Options saved!', 'subscribe2' ) . '
' . esc_html__( 'You must create a WordPress page for this plugin to work correctly.', 'subscribe2' ) . '
' . esc_html__( 'Your Settings may breach GDPR', 'subscribe2' ) . '
' . esc_html( $disallowed_keywords ) . '
' . esc_html( implode( ', ', $disallowed ) ) . '
' . wp_kses_post( $template_link ) . '
' . sprintf( __( 'You appear to be sending notifications from %1$s, which has a different domain name than your blog server %2$s. This may result in failed emails.', 'subscribe2' ), $sender, $_SERVER['SERVER_NAME'] ) . '
' . esc_html__( 'Security error! Your request cannot be completed.', 'subscribe2' ) . '
' ); + } + + if ( ! empty( $_POST['addresses'] ) ) { + $reg_sub_error = ''; + $pub_sub_error = ''; + $unsub_error = ''; + $email_error = ''; + $message = ''; + foreach ( preg_split( '/[\s,]+/', $_POST['addresses'] ) as $email ) { + $clean_email = $this->sanitize_email( $email ); + if ( false === $this->validate_email( $clean_email ) ) { + ( '' === $email_error ) ? $email_error = "$email" : $email_error .= ", $email"; + continue; + } else { + if ( isset( $_POST['subscribe'] ) ) { + if ( false !== $this->is_public( $clean_email ) ) { + ( '' === $pub_sub_error ) ? $pub_sub_error = "$clean_email" : $pub_sub_error .= ", $clean_email"; + continue; + } + if ( $this->is_registered( $clean_email ) ) { + ( '' === $reg_sub_error ) ? $reg_sub_error = "$clean_email" : $reg_sub_error .= ", $clean_email"; + continue; + } + $this->add( $clean_email, true ); + $message = __( 'Address(es) subscribed!', 'subscribe2' ); + } elseif ( isset( $_POST['unsubscribe'] ) ) { + if ( false === $this->is_public( $clean_email ) || $this->is_registered( $clean_email ) ) { + ( '' === $unsub_error ) ? $unsub_error = "$clean_email" : $unsub_error .= ", $clean_email"; + continue; + } + $this->delete( $clean_email ); + $message = __( 'Address(es) unsubscribed!', 'subscribe2' ); + } + } + } + if ( '' !== $reg_sub_error ) { + echo '' . esc_html__( 'Some emails were not processed, the following are already Registered Subscribers', 'subscribe2' ) . ':
' . esc_html( $reg_sub_error ) . '
' . esc_html__( 'Some emails were not processed, the following are already Public Subscribers', 'subscribe2' ) . ':
' . esc_html( $pub_sub_error ) . '
' . esc_html__( 'Some emails were not processed, the following were not in the database', 'subscribe2' ) . ':
' . esc_html( $unsub_error ) . '
' . esc_html__( 'Some emails were not processed, the following were invalid email addresses', 'subscribe2' ) . ':
' . esc_html( $email_error ) . '
' . esc_html( $message ) . '
' . esc_html__( 'Reminder Email(s) Sent!', 'subscribe2' ) . '
' . esc_html__( 'Registered Users Subscribed!', 'subscribe2' ) . '
' . esc_html__( 'Registered Users Unsubscribed!', 'subscribe2' ) . '
' . esc_html__( 'Format updated for Selected Registered Users!', 'subscribe2' ) . '
' . esc_html__( 'Digest Subscription updated for Selected Registered Users!', 'subscribe2' ) . '