<!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>[647] sites/trunk/wordcamp.org/public_html/wp-content/plugins/wcpt/wcpt-wordcamp/wordcamp-admin.php: WordCamp Post Type: Add lead organizers to Central when application approved.</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 { 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">
<dt>Revision</dt> <dd><a href="http://meta.trac.wordpress.org/changeset/647">647</a></dd>
<dt>Author</dt> <dd>iandunn</dd>
<dt>Date</dt> <dd>2014-05-30 00:08:30 +0000 (Fri, 30 May 2014)</dd>
</dl>

<h3>Log Message</h3>
<pre>WordCamp Post Type: Add lead organizers to Central when application approved.</pre>

<h3>Modified Paths</h3>
<ul>
<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_htmlwpcontentpluginswcptwcptwordcampwordcampadminphp"></a>
<div class="modfile"><h4>Modified: sites/trunk/wordcamp.org/public_html/wp-content/plugins/wcpt/wcpt-wordcamp/wordcamp-admin.php (646 => 647)</h4>
<pre class="diff"><span>
<span class="info">--- sites/trunk/wordcamp.org/public_html/wp-content/plugins/wcpt/wcpt-wordcamp/wordcamp-admin.php    2014-05-29 22:16:17 UTC (rev 646)
+++ sites/trunk/wordcamp.org/public_html/wp-content/plugins/wcpt/wcpt-wordcamp/wordcamp-admin.php       2014-05-30 00:08:30 UTC (rev 647)
</span><span class="lines">@@ -37,6 +37,9 @@
</span><span class="cx">          add_action( 'admin_enqueue_scripts', array( $this, 'admin_scripts' ) );
</span><span class="cx">          add_action( 'admin_print_scripts', array( $this, 'admin_print_scripts' ), 99 );
</span><span class="cx">          add_action( 'admin_print_styles', array( $this, 'admin_styles' ) );
</span><ins>+
+               // Post status
+               add_action( 'transition_post_status', array( $this, 'add_organizer_to_central' ), 10, 3 );
</ins><span class="cx">   }
</span><span class="cx"> 
</span><span class="cx">  /**
</span><span class="lines">@@ -403,6 +406,49 @@
</span><span class="cx">          }
</span><span class="cx">          return $actions;
</span><span class="cx">  }
</span><ins>+
+       /**
+        * Add the lead organizer to Central when a WordCamp application is accepted.
+        *
+        * When an application is submitted, a `wordcamp` post is created with a `draft` status. When it's accepted,
+        * the status changes to `pending`. Adding the lead organizer to Central allows them to enter all the `wordcamp`
+        * meta info themselves, and also post updates to the Central blog.
+        *
+        * @param string $new_status
+        * @param string $old_status
+        * @param WP_Post $post
+        */
+       public function add_organizer_to_central( $new_status, $old_status, $post ) {
+               if ( empty( $post->post_type ) || WCPT_POST_TYPE_ID != $post->post_type ) {
+                       return;
+               }
+
+               if ( 'draft' != $old_status || 'pending' != $new_status ) {
+                       return;
+               }
+
+               $lead_organizer = get_user_by( 'login', get_post_meta( $post->ID, 'WordPress.org Username', true ) );
+
+               if ( $lead_organizer && add_user_to_blog( get_current_blog_id(), $lead_organizer->ID, 'contributor' ) ) {
+                       $message_body = sprintf(
+                               "Howdy! Your application for %s has been accepted, and we've granted your WordPress.org account access to central.wordcamp.org. Most of the information that we'll need to collect from you is stored in a custom 'WordCamp' post located at the address below. Please log in and fill out all those empty fields. We can't add you to the official schedule until all of the fields are completed.
+
+                               %s
+
+                               Please let us know if you have any questions,
+                               WordCamp Central",
+                               $post->post_title,
+                               admin_url( 'post.php?post=' . $post->ID . '&action=edit' )
+                       );
+
+                       wp_mail(
+                               $lead_organizer->user_email,
+                               $post->post_title . ' application accepted',
+                               str_replace( "\t", '', $message_body ),
+                               array( 'Reply-To: support@wordcamp.org' )
+                       );
+               }
+       }
</ins><span class="cx"> }
</span><span class="cx"> endif; // class_exists check
</span><span class="cx"> 
</span></span></pre>
</div>
</div>

</body>
</html>