<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head><meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>[8374] sites/trunk/wordcamp.org/public_html/wp-content/plugins/wcpt: WCPT: Multiple minor fixes.</title>
</head>
<body>

<style type="text/css"><!--
#msg dl.meta { border: 1px #006 solid; background: #369; padding: 6px; color: #fff; }
#msg dl.meta dt { float: left; width: 6em; font-weight: bold; }
#msg dt:after { content:':';}
#msg dl, #msg dt, #msg ul, #msg li, #header, #footer, #logmsg { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt;  }
#msg dl a { font-weight: bold}
#msg dl a:link    { color:#fc3; }
#msg dl a:active  { color:#ff0; }
#msg dl a:visited { color:#cc6; }
h3 { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; font-weight: bold; }
#msg pre { white-space: pre-line; overflow: auto; background: #ffc; border: 1px #fa0 solid; padding: 6px; }
#logmsg { background: #ffc; border: 1px #fa0 solid; padding: 1em 1em 0 1em; }
#logmsg p, #logmsg pre, #logmsg blockquote { margin: 0 0 1em 0; }
#logmsg p, #logmsg li, #logmsg dt, #logmsg dd { line-height: 14pt; }
#logmsg h1, #logmsg h2, #logmsg h3, #logmsg h4, #logmsg h5, #logmsg h6 { margin: .5em 0; }
#logmsg h1:first-child, #logmsg h2:first-child, #logmsg h3:first-child, #logmsg h4:first-child, #logmsg h5:first-child, #logmsg h6:first-child { margin-top: 0; }
#logmsg ul, #logmsg ol { padding: 0; list-style-position: inside; margin: 0 0 0 1em; }
#logmsg ul { text-indent: -1em; padding-left: 1em; }#logmsg ol { text-indent: -1.5em; padding-left: 1.5em; }
#logmsg > ul, #logmsg > ol { margin: 0 0 1em 0; }
#logmsg pre { background: #eee; padding: 1em; }
#logmsg blockquote { border: 1px solid #fa0; border-left-width: 10px; padding: 1em 1em 0 1em; background: white;}
#logmsg dl { margin: 0; }
#logmsg dt { font-weight: bold; }
#logmsg dd { margin: 0; padding: 0 0 0.5em 0; }
#logmsg dd:before { content:'\00bb';}
#logmsg table { border-spacing: 0px; border-collapse: collapse; border-top: 4px solid #fa0; border-bottom: 1px solid #fa0; background: #fff; }
#logmsg table th { text-align: left; font-weight: normal; padding: 0.2em 0.5em; border-top: 1px dotted #fa0; }
#logmsg table td { text-align: right; border-top: 1px dotted #fa0; padding: 0.2em 0.5em; }
#logmsg table thead th { text-align: center; border-bottom: 1px solid #fa0; }
#logmsg table th.Corner { text-align: left; }
#logmsg hr { border: none 0; border-top: 2px dashed #fa0; height: 1px; }
#header, #footer { color: #fff; background: #636; border: 1px #300 solid; padding: 6px; }
#patch { width: 100%; }
#patch h4 {font-family: verdana,arial,helvetica,sans-serif;font-size:10pt;padding:8px;background:#369;color:#fff;margin:0;}
#patch .propset h4, #patch .binary h4 {margin:0;}
#patch pre {padding:0;line-height:1.2em;margin:0;}
#patch .diff {width:100%;background:#eee;padding: 0 0 10px 0;overflow:auto;}
#patch .propset .diff, #patch .binary .diff  {padding:10px 0;}
#patch span {display:block;padding:0 10px;}
#patch .modfile, #patch .addfile, #patch .delfile, #patch .propset, #patch .binary, #patch .copfile {border:1px solid #ccc;margin:10px 0;}
#patch ins {background:#dfd;text-decoration:none;display:block;padding:0 10px;}
#patch del {background:#fdd;text-decoration:none;display:block;padding:0 10px;}
#patch .lines, .info {color:#888;background:#fff;}
--></style>
<div id="msg">
<dl class="meta" style="font-size: 105%">
<dt style="float: left; width: 6em; font-weight: bold">Revision</dt> <dd><a style="font-weight: bold" href="http://meta.trac.wordpress.org/changeset/8374">8374</a><script type="application/ld+json">{"@context":"http://schema.org","@type":"EmailMessage","description":"Review this Commit","action":{"@type":"ViewAction","url":"http://meta.trac.wordpress.org/changeset/8374","name":"Review Commit"}}</script></dd>
<dt style="float: left; width: 6em; font-weight: bold">Author</dt> <dd>vedjain</dd>
<dt style="float: left; width: 6em; font-weight: bold">Date</dt> <dd>2019-02-28 15:34:07 +0000 (Thu, 28 Feb 2019)</dd>
</dl>

<pre style='padding-left: 1em; margin: 2em 0; border-left: 2px solid #ccc; line-height: 1.25; font-size: 105%; font-family: sans-serif'>WCPT: Multiple minor fixes. See description.

1. Added check while sending declined / scheduled notifications for WordCamp / Meetup, so that we do not send duplicate notifications for same event.
2. Removed meetup organizer reminder cron because we are not using it anymore. This was already disabled, and this patch just removes dead code from codebase.
3. Applied code standard and fixes in multiple places.</pre>

<h3>Modified Paths</h3>
<ul>
<li><a href="#sitestrunkwordcamporgpublic_htmlwpcontentpluginswcptwcpteventclasseventadminphp">sites/trunk/wordcamp.org/public_html/wp-content/plugins/wcpt/wcpt-event/class-event-admin.php</a></li>
<li><a href="#sitestrunkwordcamporgpublic_htmlwpcontentpluginswcptwcpteventclasseventapplicationphp">sites/trunk/wordcamp.org/public_html/wp-content/plugins/wcpt/wcpt-event/class-event-application.php</a></li>
<li><a href="#sitestrunkwordcamporgpublic_htmlwpcontentpluginswcptwcptmeetupclassmeetupadminphp">sites/trunk/wordcamp.org/public_html/wp-content/plugins/wcpt/wcpt-meetup/class-meetup-admin.php</a></li>
<li><a href="#sitestrunkwordcamporgpublic_htmlwpcontentpluginswcptwcptwordcampwordcampadminphp">sites/trunk/wordcamp.org/public_html/wp-content/plugins/wcpt/wcpt-wordcamp/wordcamp-admin.php</a></li>
</ul>

</div>
<div id="patch">
<h3>Diff</h3>
<a id="sitestrunkwordcamporgpublic_htmlwpcontentpluginswcptwcpteventclasseventadminphp"></a>
<div class="modfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Modified: sites/trunk/wordcamp.org/public_html/wp-content/plugins/wcpt/wcpt-event/class-event-admin.php</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- sites/trunk/wordcamp.org/public_html/wp-content/plugins/wcpt/wcpt-event/class-event-admin.php     2019-02-28 08:43:09 UTC (rev 8373)
+++ sites/trunk/wordcamp.org/public_html/wp-content/plugins/wcpt/wcpt-event/class-event-admin.php       2019-02-28 15:34:07 UTC (rev 8374)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -258,7 +258,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">         *
</span><span class="cx" style="display: block; padding: 0 10px">         * @return string
</span><span class="cx" style="display: block; padding: 0 10px">         */
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        public function set_locale_to_en_US() {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ public function set_locale_to_en_us() {
</ins><span class="cx" style="display: block; padding: 0 10px">                 return 'en_US';
</span><span class="cx" style="display: block; padding: 0 10px">        }
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -279,7 +279,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">                }
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">                // Ensure status labels are in English.
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                add_filter( 'locale', array( $this, 'set_locale_to_en_US' ) );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         add_filter( 'locale', array( $this, 'set_locale_to_en_us' ) );
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">                $old_status = get_post_status_object( $old_status );
</span><span class="cx" style="display: block; padding: 0 10px">                $new_status = get_post_status_object( $new_status );
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -301,7 +301,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">                }
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">                // Remove the temporary locale change.
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                remove_filter( 'locale', array( $this, 'set_locale_to_en_US' ) );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         remove_filter( 'locale', array( $this, 'set_locale_to_en_us' ) );
</ins><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">        /**
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -314,7 +314,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">        abstract public function notify_application_status_in_slack( $new_status, $old_status, WP_Post $event );
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">        /**
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-         * Schedule notificaiton for declined application. Currently supports WordCamp and Meetup
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  * Schedule notification for declined application. Currently supports WordCamp and Meetup.
</ins><span class="cx" style="display: block; padding: 0 10px">          *
</span><span class="cx" style="display: block; padding: 0 10px">         * @param WP_Post $event Event object.
</span><span class="cx" style="display: block; padding: 0 10px">         * @param string  $label Could be WordCamp or Meetup.
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -330,8 +330,15 @@
</span><span class="cx" style="display: block; padding: 0 10px">         * @param int    $event_id
</span><span class="cx" style="display: block; padding: 0 10px">         * @param string $label
</span><span class="cx" style="display: block; padding: 0 10px">         * @param string $location
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         *
+        * @return null|bool|string
</ins><span class="cx" style="display: block; padding: 0 10px">          */
</span><span class="cx" style="display: block; padding: 0 10px">        public static function send_decline_notification( $event_id, $label, $location ) {
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                $declined_notification_key = 'sent_declined_notification';
+               if ( get_post_meta( $event_id, $declined_notification_key, true ) ) {
+                       return null;
+               }
+
</ins><span class="cx" style="display: block; padding: 0 10px">                 $message = sprintf(
</span><span class="cx" style="display: block; padding: 0 10px">                        'A %s application for %s has been declined, and the applicant has been informed via email.',
</span><span class="cx" style="display: block; padding: 0 10px">                        $label,
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -339,7 +346,12 @@
</span><span class="cx" style="display: block; padding: 0 10px">                );
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">                $attachment = create_event_status_attachment( $message, $event_id, '' );
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                wcpt_slack_notify( COMMUNITY_TEAM_SLACK, $attachment );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+
+               $notification_sent = wcpt_slack_notify( COMMUNITY_TEAM_SLACK, $attachment );
+               if ( $notification_sent ) {
+                       update_post_meta( $event_id, $declined_notification_key, true );
+               }
+               return $notification_sent;
</ins><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">        /**
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -442,6 +454,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">                }
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">                // Don't add/remove meta on trash, untrash, restore, etc.
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                // phpcs:ignore WordPress.Security.NonceVerification.Missing
</ins><span class="cx" style="display: block; padding: 0 10px">                 if ( empty( $_POST['action'] ) || 'editpost' !== $_POST['action'] ) {
</span><span class="cx" style="display: block; padding: 0 10px">                        return;
</span><span class="cx" style="display: block; padding: 0 10px">                }
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -453,7 +466,6 @@
</span><span class="cx" style="display: block; padding: 0 10px">                        }
</span><span class="cx" style="display: block; padding: 0 10px">                }
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-
</del><span class="cx" style="display: block; padding: 0 10px">                 $meta_keys = $this->meta_keys();
</span><span class="cx" style="display: block; padding: 0 10px">                $orig_meta_values = get_post_meta( $post_id );
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span></span></pre></div>
<a id="sitestrunkwordcamporgpublic_htmlwpcontentpluginswcptwcpteventclasseventapplicationphp"></a>
<div class="modfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Modified: sites/trunk/wordcamp.org/public_html/wp-content/plugins/wcpt/wcpt-event/class-event-application.php</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- sites/trunk/wordcamp.org/public_html/wp-content/plugins/wcpt/wcpt-event/class-event-application.php       2019-02-28 08:43:09 UTC (rev 8373)
+++ sites/trunk/wordcamp.org/public_html/wp-content/plugins/wcpt/wcpt-event/class-event-application.php 2019-02-28 15:34:07 UTC (rev 8374)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -63,6 +63,7 @@
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">                // phpcs:ignore WordPress.Security.NonceVerification.Missing -- We do not verify nonce for frontend forms because WP Super Cache may cache an expired nonce token.
</span><span class="cx" style="display: block; padding: 0 10px">                if ( isset( $_POST['submit-application'] ) ) {
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                        // phpcs:ignore WordPress.Security.NonceVerification.Missing
</ins><span class="cx" style="display: block; padding: 0 10px">                         $this->submit_application( $_POST );
</span><span class="cx" style="display: block; padding: 0 10px">                } else {
</span><span class="cx" style="display: block; padding: 0 10px">                        $countries = wcorg_get_countries();
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -236,7 +237,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">        }
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">        /**
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-         * Notify in community slack channel that we've received an application
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  * Notify in community slack channel that we've received an application.
</ins><span class="cx" style="display: block; padding: 0 10px">          */
</span><span class="cx" style="display: block; padding: 0 10px">        public function notify_new_application_in_slack() {
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span></span></pre></div>
<a id="sitestrunkwordcamporgpublic_htmlwpcontentpluginswcptwcptmeetupclassmeetupadminphp"></a>
<div class="modfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Modified: sites/trunk/wordcamp.org/public_html/wp-content/plugins/wcpt/wcpt-meetup/class-meetup-admin.php</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- sites/trunk/wordcamp.org/public_html/wp-content/plugins/wcpt/wcpt-meetup/class-meetup-admin.php   2019-02-28 08:43:09 UTC (rev 8373)
+++ sites/trunk/wordcamp.org/public_html/wp-content/plugins/wcpt/wcpt-meetup/class-meetup-admin.php     2019-02-28 15:34:07 UTC (rev 8374)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -510,10 +510,13 @@
</span><span class="cx" style="display: block; padding: 0 10px">                 *
</span><span class="cx" style="display: block; padding: 0 10px">                 * @param WP_Post $meetup Meetup post object.
</span><span class="cx" style="display: block; padding: 0 10px">                 *
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                 * @return bool|string
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+          * @return null|bool|string
</ins><span class="cx" style="display: block; padding: 0 10px">                  */
</span><span class="cx" style="display: block; padding: 0 10px">                public static function notify_new_meetup_group_in_slack( $meetup ) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                 $new_group_notification_key = 'sent_new_group_notification';
+                       if ( get_post_meta( $meetup->ID, $new_group_notification_key, true ) ) {
+                               return null;
+                       }
</ins><span class="cx" style="display: block; padding: 0 10px">                         // Not translating strings here because these will be sent to Slack.
</span><span class="cx" style="display: block; padding: 0 10px">                        $city            = get_post_meta( $meetup->ID, 'Meetup Location', true );
</span><span class="cx" style="display: block; padding: 0 10px">                        $organizer_slack = get_post_meta( $meetup->ID, 'Slack', true );
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -522,14 +525,18 @@
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">                        $message = sprintf(
</span><span class="cx" style="display: block; padding: 0 10px">                                "Let's welcome the new WordPress meetup group%s%s, to the chapter! :tada: :community: :wordpress:\n%s",
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                                isset( $city ) ? " in $city," : "",
-                               isset( $organizer_slack ) ? " organized by @$organizer_slack" : "",
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                         empty( $city ) ? '' : " in $city,",
+                               empty( $organizer_slack ) ? '' : " organized by @$organizer_slack",
</ins><span class="cx" style="display: block; padding: 0 10px">                                 $meetup_link
</span><span class="cx" style="display: block; padding: 0 10px">                        );
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">                        $attachment = create_event_status_attachment( $message, $meetup->ID, $title );
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                        return wcpt_slack_notify( COMMUNITY_EVENTS_SLACK, $attachment );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                 $notification_sent = wcpt_slack_notify( COMMUNITY_EVENTS_SLACK, $attachment );
+                       if ( $notification_sent ) {
+                               update_post_meta( $meetup->ID, $new_group_notification_key, true );
+                       }
+                       return $notification_sent;
</ins><span class="cx" style="display: block; padding: 0 10px">                 }
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">                /**
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -782,54 +789,8 @@
</span><span class="cx" style="display: block; padding: 0 10px">                                        }
</span><span class="cx" style="display: block; padding: 0 10px">                                }
</span><span class="cx" style="display: block; padding: 0 10px">                        }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                        // Disabling the new organizer notification because its a lot of work, and not always possible to find someone's wporg username from their meetup profile
-                       // self::new_meetup_organizers_notify( $new_meetup_org_data );
</del><span class="cx" style="display: block; padding: 0 10px">                 }
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                /**
-                * Send email containing new meetup organizers to WordCamp Support team. Also adds a tag - `Needs to update Organizer list`
-                *
-                * @param array $new_meetup_org_data
-                */
-               public static function new_meetup_organizers_notify( $new_meetup_org_data ) {
-                       if ( empty( $new_meetup_org_data ) ) {
-                               return;
-                       }
-
-                       $template = <<<HTML
-Hi,
-<br><br>
-New organizers have been added for following meetups. Please update their wporg usernames in their meetup tracker page.
-<br><br>
-HTML;
-                       $count = 0;
-                       foreach ( $new_meetup_org_data as $post_id => $new_meetup_org ) {
-                               $count ++;
-                               $title = get_the_title( $post_id );
-                               $meetup_tracker_url = get_site_url() . "/wp-admin/post.php?post=$post_id&action=edit";
-                               $template = $template . "$count. <a href='$meetup_tracker_url' rel='noreferrer' target='_blank' >$title</a> : ";
-                               $meetup_group_url = get_post_meta( $post_id, 'Meetup URL', true );
-                               $meetup_members = array();
-                               foreach ( $new_meetup_org as $organizer ) {
-                                       $organizer_id = esc_html( $organizer['id'] );
-                                       $organizer_name = esc_html( $organizer['name'] );
-                                       $meetup_members[] = "<a href='$meetup_group_url/members/$organizer_id' target='_blank' rel='noreferrer' >$organizer_name</a>";
-                               }
-                               $template = $template . join( ', ', $meetup_members ) . '<br>';
-
-                               // Add a tag for meetup.
-                               wp_set_object_terms( $post_id, 'Needs to update Organizer list', 'meetup_tags', true );
-                       }
-                       wp_mail(
-                               array( 'support@wordcamp.org' ),
-                               'New Meetup organizer added',
-                               $template,
-                               array(
-                                       'From:         noreply@wordcamp.org',
-                                       'Content-Type: text/html; charset=UTF-8',
-                               )
-                       );
-               }
</del><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px"> endif;
</span></span></pre></div>
<a id="sitestrunkwordcamporgpublic_htmlwpcontentpluginswcptwcptwordcampwordcampadminphp"></a>
<div class="modfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Modified: sites/trunk/wordcamp.org/public_html/wp-content/plugins/wcpt/wcpt-wordcamp/wordcamp-admin.php</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- sites/trunk/wordcamp.org/public_html/wp-content/plugins/wcpt/wcpt-wordcamp/wordcamp-admin.php     2019-02-28 08:43:09 UTC (rev 8373)
+++ sites/trunk/wordcamp.org/public_html/wp-content/plugins/wcpt/wcpt-wordcamp/wordcamp-admin.php       2019-02-28 15:34:07 UTC (rev 8374)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -743,9 +743,14 @@
</span><span class="cx" style="display: block; padding: 0 10px">                 *
</span><span class="cx" style="display: block; padding: 0 10px">                 * @param WP_Post $wordcamp
</span><span class="cx" style="display: block; padding: 0 10px">                 *
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                 * @return null|bool
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+          * @return null|bool|string
</ins><span class="cx" style="display: block; padding: 0 10px">                  */
</span><span class="cx" style="display: block; padding: 0 10px">                public static function notify_new_wordcamp_in_slack( $wordcamp ) {
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                        $scheduled_notification_key = 'sent_scheduled_notification';
+                       if ( get_post_meta( $wordcamp->ID, $scheduled_notification_key, true ) ) {
+                               return null;
+                       }
+
</ins><span class="cx" style="display: block; padding: 0 10px">                         // Not translating any string because they will be sent to slack.
</span><span class="cx" style="display: block; padding: 0 10px">                        $city             = get_post_meta( $wordcamp->ID, 'Location', true );
</span><span class="cx" style="display: block; padding: 0 10px">                        $start_date       = get_post_meta( $wordcamp->ID, 'Start Date (YYYY-mm-dd)', true );
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -761,7 +766,11 @@
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">                        $attachment = create_event_status_attachment( $message, $wordcamp->ID, $title );
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                        return wcpt_slack_notify( COMMUNITY_EVENTS_SLACK, $attachment );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                 $notification_sent = wcpt_slack_notify( COMMUNITY_EVENTS_SLACK, $attachment );
+                       if ( $notification_sent ) {
+                               update_post_meta( $wordcamp->ID, $scheduled_notification_key, true );
+                       }
+                       return $notification_sent;
</ins><span class="cx" style="display: block; padding: 0 10px">                 }
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">                /**
</span></span></pre>
</div>
</div>

</body>
</html>