<!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>[7872] sites/trunk/wordcamp.org/public_html/wp-content/plugins/wordcamp-reports/classes/report: WordCamp Reports: Normalize validation of WordCamp IDs</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/7872">7872</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/7872","name":"Review Commit"}}</script></dd>
<dt style="float: left; width: 6em; font-weight: bold">Author</dt> <dd>coreymckrill</dd>
<dt style="float: left; width: 6em; font-weight: bold">Date</dt> <dd>2018-11-19 20:54:21 +0000 (Mon, 19 Nov 2018)</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'>WordCamp Reports: Normalize validation of WordCamp IDs

This removes the WordCamp ID validation method in the Base class in favor of
the external validation function, and switches all of the reports over to use
the external function.</pre>

<h3>Modified Paths</h3>
<ul>
<li><a href="#sitestrunkwordcamporgpublic_htmlwpcontentpluginswordcampreportsclassesreportclassbasephp">sites/trunk/wordcamp.org/public_html/wp-content/plugins/wordcamp-reports/classes/report/class-base.php</a></li>
<li><a href="#sitestrunkwordcamporgpublic_htmlwpcontentpluginswordcampreportsclassesreportclasspaymentactivityphp">sites/trunk/wordcamp.org/public_html/wp-content/plugins/wordcamp-reports/classes/report/class-payment-activity.php</a></li>
<li><a href="#sitestrunkwordcamporgpublic_htmlwpcontentpluginswordcampreportsclassesreportclasssponsorinvoicesphp">sites/trunk/wordcamp.org/public_html/wp-content/plugins/wordcamp-reports/classes/report/class-sponsor-invoices.php</a></li>
<li><a href="#sitestrunkwordcamporgpublic_htmlwpcontentpluginswordcampreportsclassesreportclasssponsorshipgrantsphp">sites/trunk/wordcamp.org/public_html/wp-content/plugins/wordcamp-reports/classes/report/class-sponsorship-grants.php</a></li>
<li><a href="#sitestrunkwordcamporgpublic_htmlwpcontentpluginswordcampreportsclassesreportclassticketrevenuephp">sites/trunk/wordcamp.org/public_html/wp-content/plugins/wordcamp-reports/classes/report/class-ticket-revenue.php</a></li>
<li><a href="#sitestrunkwordcamporgpublic_htmlwpcontentpluginswordcampreportsclassesreportclasswordcamppaymentmethodsphp">sites/trunk/wordcamp.org/public_html/wp-content/plugins/wordcamp-reports/classes/report/class-wordcamp-payment-methods.php</a></li>
</ul>

</div>
<div id="patch">
<h3>Diff</h3>
<a id="sitestrunkwordcamporgpublic_htmlwpcontentpluginswordcampreportsclassesreportclassbasephp"></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/wordcamp-reports/classes/report/class-base.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/wordcamp-reports/classes/report/class-base.php    2018-11-18 09:19:38 UTC (rev 7871)
+++ sites/trunk/wordcamp.org/public_html/wp-content/plugins/wordcamp-reports/classes/report/class-base.php      2018-11-19 20:54:21 UTC (rev 7872)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -4,10 +4,10 @@
</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"> namespace WordCamp\Reports\Report;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-use WP_Post;
-
</del><span class="cx" style="display: block; padding: 0 10px"> defined( 'WPINC' ) || die();
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+use WP_Error, WP_Post, WP_REST_Response;
+
</ins><span class="cx" style="display: block; padding: 0 10px"> /**
</span><span class="cx" style="display: block; padding: 0 10px">  * Class Base
</span><span class="cx" style="display: block; padding: 0 10px">  *
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -114,7 +114,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">                        'public'      => true,
</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">-                $this->error = new \WP_Error();
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         $this->error = new WP_Error();
</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">@@ -151,6 +151,21 @@
</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><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         * Determine the data fields safelist based on the context of the report.
+        *
+        * @return array The list of fields that are safe to include.
+        */
+       public function get_data_fields_safelist() {
+               $safelist = $this->public_data_fields;
+
+               if ( false === $this->options['public'] ) {
+                       $safelist = array_merge( $safelist, $this->private_data_fields );
+               }
+
+               return $safelist;
+       }
+
+       /**
</ins><span class="cx" style="display: block; padding: 0 10px">          * Generate a cache key.
</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="lines" style="display: block; padding: 0 10px; color: #888">@@ -217,12 +232,12 @@
</span><span class="cx" style="display: block; padding: 0 10px">        /**
</span><span class="cx" style="display: block; padding: 0 10px">         * Merge two error objects into one, new error 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">-         * @param \WP_Error $error1 An error object.
-        * @param \WP_Error $error2 An error object.
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  * @param WP_Error $error1 An error object.
+        * @param WP_Error $error2 An error object.
</ins><span class="cx" style="display: block; padding: 0 10px">          *
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-         * @return \WP_Error The combined errors of the two parameters.
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  * @return WP_Error The combined errors of the two parameters.
</ins><span class="cx" style="display: block; padding: 0 10px">          */
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        protected function merge_errors( \WP_Error $error1, \WP_Error $error2 ) {
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ protected function merge_errors( WP_Error $error1, WP_Error $error2 ) {
</ins><span class="cx" style="display: block; padding: 0 10px">                 $codes = $error2->get_error_codes();
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">                foreach ( $codes as $code ) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -237,33 +252,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">-         * Validate a given WordCamp post ID.
-        *
-        * @param int $wordcamp_id The ID of a WordCamp post.
-        *
-        * @return bool True if the WordCamp ID is valid. Otherwise false.
-        */
-       protected function validate_wordcamp_id( $wordcamp_id ) {
-               $wordcamp = get_post( $wordcamp_id );
-
-               if ( ! $wordcamp instanceof WP_Post || WCPT_POST_TYPE_ID !== get_post_type( $wordcamp ) ) {
-                       $this->error->add( 'invalid_wordcamp_id', 'Please enter a valid WordCamp ID.' );
-
-                       return false;
-               }
-
-               $wordcamp_site_id = get_wordcamp_site_id( $wordcamp );
-
-               if ( ! $wordcamp_site_id ) {
-                       $this->error->add( 'wordcamp_without_site', 'The specified WordCamp does not have a site yet.' );
-
-                       return false;
-               }
-
-               return true;
-       }
-
-       /**
</del><span class="cx" style="display: block; padding: 0 10px">          * Render an HTML notice containing error messages.
</span><span class="cx" style="display: block; padding: 0 10px">         *
</span><span class="cx" style="display: block; padding: 0 10px">         * @return void
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -287,7 +275,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">         * @param mixed $data                       The data that will go in the `data` parameter of the response.
</span><span class="cx" style="display: block; padding: 0 10px">         * @param array $additional_response_params Additional top-level parameters to add to the response.
</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 \WP_REST_Response
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  * @return WP_REST_Response
</ins><span class="cx" style="display: block; padding: 0 10px">          */
</span><span class="cx" style="display: block; padding: 0 10px">        protected static function prepare_rest_response( $data, array $additional_response_params = array() ) {
</span><span class="cx" style="display: block; padding: 0 10px">                $response_data = array_merge( array(
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -297,21 +285,6 @@
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">                $response_data['data'] = $data;
</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 new \WP_REST_Response( $response_data );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         return new WP_REST_Response( $response_data );
</ins><span class="cx" style="display: block; padding: 0 10px">         }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-
-       /**
-        * Determine the data fields safelist based on the context of the report.
-        *
-        * @return array The list of fields that are safe to include.
-        */
-       public function get_data_fields_safelist() {
-               $safelist = $this->public_data_fields;
-
-               if ( false === $this->options['public'] ) {
-                       $safelist = array_merge( $safelist, $this->private_data_fields );
-               }
-
-               return $safelist;
-       }
</del><span class="cx" style="display: block; padding: 0 10px"> }
</span></span></pre></div>
<a id="sitestrunkwordcamporgpublic_htmlwpcontentpluginswordcampreportsclassesreportclasspaymentactivityphp"></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/wordcamp-reports/classes/report/class-payment-activity.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/wordcamp-reports/classes/report/class-payment-activity.php        2018-11-18 09:19:38 UTC (rev 7871)
+++ sites/trunk/wordcamp.org/public_html/wp-content/plugins/wordcamp-reports/classes/report/class-payment-activity.php  2018-11-19 20:54:21 UTC (rev 7872)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -8,8 +8,10 @@
</span><span class="cx" style="display: block; padding: 0 10px"> namespace WordCamp\Reports\Report;
</span><span class="cx" style="display: block; padding: 0 10px"> defined( 'WPINC' ) || die();
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+use Exception;
</ins><span class="cx" style="display: block; padding: 0 10px"> use WordCamp\Reports;
</span><span class="cx" style="display: block; padding: 0 10px"> use WordCamp\Utilities;
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+use function WordCamp\Reports\Validation\{validate_wordcamp_id};
</ins><span class="cx" style="display: block; padding: 0 10px"> use WordCamp\Budgets_Dashboard\Reimbursement_Requests;
</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">@@ -121,9 +123,18 @@
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">                $this->xrt = new Utilities\Currency_XRT_Client();
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                if ( $wordcamp_id && $this->validate_wordcamp_id( $wordcamp_id ) ) {
-                       $this->wordcamp_id      = $wordcamp_id;
-                       $this->wordcamp_site_id = get_wordcamp_site_id( get_post( $wordcamp_id ) );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         if ( $wordcamp_id ) {
+                       try {
+                               $valid = validate_wordcamp_id( $wordcamp_id );
+
+                               $this->wordcamp_id      = $valid->post_id;
+                               $this->wordcamp_site_id = $valid->site_id;
+                       } catch( Exception $e ) {
+                               $this->error->add(
+                                       self::$slug . '-wordcamp-id-error',
+                                       $e->getMessage()
+                               );
+                       }
</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>
<a id="sitestrunkwordcamporgpublic_htmlwpcontentpluginswordcampreportsclassesreportclasssponsorinvoicesphp"></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/wordcamp-reports/classes/report/class-sponsor-invoices.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/wordcamp-reports/classes/report/class-sponsor-invoices.php        2018-11-18 09:19:38 UTC (rev 7871)
+++ sites/trunk/wordcamp.org/public_html/wp-content/plugins/wordcamp-reports/classes/report/class-sponsor-invoices.php  2018-11-19 20:54:21 UTC (rev 7872)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -8,8 +8,10 @@
</span><span class="cx" style="display: block; padding: 0 10px"> namespace WordCamp\Reports\Report;
</span><span class="cx" style="display: block; padding: 0 10px"> defined( 'WPINC' ) || die();
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+use Exception;
</ins><span class="cx" style="display: block; padding: 0 10px"> use WordCamp\Reports;
</span><span class="cx" style="display: block; padding: 0 10px"> use WordCamp\Utilities;
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+use function WordCamp\Reports\Validation\{validate_wordcamp_id};
</ins><span class="cx" style="display: block; padding: 0 10px"> use WordCamp\Budgets_Dashboard\Sponsor_Invoices as WCBD_Sponsor_Invoices;
</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">@@ -120,9 +122,18 @@
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">                $this->xrt = new Utilities\Currency_XRT_Client();
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                if ( $wordcamp_id && $this->validate_wordcamp_id( $wordcamp_id ) ) {
-                       $this->wordcamp_id      = $wordcamp_id;
-                       $this->wordcamp_site_id = get_wordcamp_site_id( get_post( $wordcamp_id ) );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         if ( $wordcamp_id ) {
+                       try {
+                               $valid = validate_wordcamp_id( $wordcamp_id );
+
+                               $this->wordcamp_id      = $valid->post_id;
+                               $this->wordcamp_site_id = $valid->site_id;
+                       } catch( Exception $e ) {
+                               $this->error->add(
+                                       self::$slug . '-wordcamp-id-error',
+                                       $e->getMessage()
+                               );
+                       }
</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>
<a id="sitestrunkwordcamporgpublic_htmlwpcontentpluginswordcampreportsclassesreportclasssponsorshipgrantsphp"></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/wordcamp-reports/classes/report/class-sponsorship-grants.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/wordcamp-reports/classes/report/class-sponsorship-grants.php      2018-11-18 09:19:38 UTC (rev 7871)
+++ sites/trunk/wordcamp.org/public_html/wp-content/plugins/wordcamp-reports/classes/report/class-sponsorship-grants.php        2018-11-19 20:54:21 UTC (rev 7872)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -8,9 +8,11 @@
</span><span class="cx" style="display: block; padding: 0 10px"> namespace WordCamp\Reports\Report;
</span><span class="cx" style="display: block; padding: 0 10px"> defined( 'WPINC' ) || die();
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+use Exception;
</ins><span class="cx" style="display: block; padding: 0 10px"> use WordCamp\Reports;
</span><span class="cx" style="display: block; padding: 0 10px"> use WordCamp\Reports\Report;
</span><span class="cx" style="display: block; padding: 0 10px"> use WordCamp\Utilities;
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+use function WordCamp\Reports\Validation\{validate_wordcamp_id};
</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">  * Class Sponsorship_Grants
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -115,9 +117,18 @@
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">                $this->xrt = new Utilities\Currency_XRT_Client();
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                if ( $wordcamp_id && $this->validate_wordcamp_id( $wordcamp_id ) ) {
-                       $this->wordcamp_id      = $wordcamp_id;
-                       $this->wordcamp_site_id = get_wordcamp_site_id( get_post( $wordcamp_id ) );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         if ( $wordcamp_id ) {
+                       try {
+                               $valid = validate_wordcamp_id( $wordcamp_id );
+
+                               $this->wordcamp_id      = $valid->post_id;
+                               $this->wordcamp_site_id = $valid->site_id;
+                       } catch( Exception $e ) {
+                               $this->error->add(
+                                       self::$slug . '-wordcamp-id-error',
+                                       $e->getMessage()
+                               );
+                       }
</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>
<a id="sitestrunkwordcamporgpublic_htmlwpcontentpluginswordcampreportsclassesreportclassticketrevenuephp"></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/wordcamp-reports/classes/report/class-ticket-revenue.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/wordcamp-reports/classes/report/class-ticket-revenue.php  2018-11-18 09:19:38 UTC (rev 7871)
+++ sites/trunk/wordcamp.org/public_html/wp-content/plugins/wordcamp-reports/classes/report/class-ticket-revenue.php    2018-11-19 20:54:21 UTC (rev 7872)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -8,8 +8,10 @@
</span><span class="cx" style="display: block; padding: 0 10px"> namespace WordCamp\Reports\Report;
</span><span class="cx" style="display: block; padding: 0 10px"> defined( 'WPINC' ) || die();
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+use Exception;
</ins><span class="cx" style="display: block; padding: 0 10px"> use WordCamp\Reports;
</span><span class="cx" style="display: block; padding: 0 10px"> use WordCamp\Utilities;
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+use function WordCamp\Reports\Validation\{validate_wordcamp_id};
</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">  * Class Ticket_Revenue
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -126,9 +128,18 @@
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">                $this->xrt = new Utilities\Currency_XRT_Client();
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                if ( $wordcamp_id && $this->validate_wordcamp_id( $wordcamp_id ) ) {
-                       $this->wordcamp_id      = $wordcamp_id;
-                       $this->wordcamp_site_id = get_wordcamp_site_id( get_post( $wordcamp_id ) );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         if ( $wordcamp_id ) {
+                       try {
+                               $valid = validate_wordcamp_id( $wordcamp_id );
+
+                               $this->wordcamp_id      = $valid->post_id;
+                               $this->wordcamp_site_id = $valid->site_id;
+                       } catch( Exception $e ) {
+                               $this->error->add(
+                                       self::$slug . '-wordcamp-id-error',
+                                       $e->getMessage()
+                               );
+                       }
</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>
<a id="sitestrunkwordcamporgpublic_htmlwpcontentpluginswordcampreportsclassesreportclasswordcamppaymentmethodsphp"></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/wordcamp-reports/classes/report/class-wordcamp-payment-methods.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/wordcamp-reports/classes/report/class-wordcamp-payment-methods.php        2018-11-18 09:19:38 UTC (rev 7871)
+++ sites/trunk/wordcamp.org/public_html/wp-content/plugins/wordcamp-reports/classes/report/class-wordcamp-payment-methods.php  2018-11-19 20:54:21 UTC (rev 7872)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -8,8 +8,10 @@
</span><span class="cx" style="display: block; padding: 0 10px"> namespace WordCamp\Reports\Report;
</span><span class="cx" style="display: block; padding: 0 10px"> defined( 'WPINC' ) || die();
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+use Exception;
</ins><span class="cx" style="display: block; padding: 0 10px"> use WordCamp\Reports;
</span><span class="cx" style="display: block; padding: 0 10px"> use WordCamp\Utilities;
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+use function WordCamp\Reports\Validation\{validate_wordcamp_id};
</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">  * Class WordCamp_Payment_Methods
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -111,9 +113,18 @@
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">                $this->xrt = new Utilities\Currency_XRT_Client();
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                if ( $wordcamp_id && $this->validate_wordcamp_id( $wordcamp_id ) ) {
-                       $this->wordcamp_id      = $wordcamp_id;
-                       $this->wordcamp_site_id = get_wordcamp_site_id( get_post( $wordcamp_id ) );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         if ( $wordcamp_id ) {
+                       try {
+                               $valid = validate_wordcamp_id( $wordcamp_id );
+
+                               $this->wordcamp_id      = $valid->post_id;
+                               $this->wordcamp_site_id = $valid->site_id;
+                       } catch( Exception $e ) {
+                               $this->error->add(
+                                       self::$slug . '-wordcamp-id-error',
+                                       $e->getMessage()
+                               );
+                       }
</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>