<!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>[8470] sites/trunk/wordpress.org/public_html/wp-content/plugins/plugin-directory/shortcodes/class-upload-handler.php: Plugin Directory: Upload: Improve the language used in explanations for upload errors.</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/8470">8470</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/8470","name":"Review Commit"}}</script></dd>
<dt style="float: left; width: 6em; font-weight: bold">Author</dt> <dd>SergeyBiryukov</dd>
<dt style="float: left; width: 6em; font-weight: bold">Date</dt> <dd>2019-03-16 22:24:06 +0000 (Sat, 16 Mar 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'>Plugin Directory: Upload: Improve the language used in explanations for upload errors.
Add a check whether the uploaded plugin starts with a commonly abused slug.
Props Ipstenu.
Fixes <a href="http://meta.trac.wordpress.org/ticket/4293">#4293</a>.</pre>
<h3>Modified Paths</h3>
<ul>
<li><a href="#sitestrunkwordpressorgpublic_htmlwpcontentpluginsplugindirectoryshortcodesclassuploadhandlerphp">sites/trunk/wordpress.org/public_html/wp-content/plugins/plugin-directory/shortcodes/class-upload-handler.php</a></li>
</ul>
</div>
<div id="patch">
<h3>Diff</h3>
<a id="sitestrunkwordpressorgpublic_htmlwpcontentpluginsplugindirectoryshortcodesclassuploadhandlerphp"></a>
<div class="modfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Modified: sites/trunk/wordpress.org/public_html/wp-content/plugins/plugin-directory/shortcodes/class-upload-handler.php</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- sites/trunk/wordpress.org/public_html/wp-content/plugins/plugin-directory/shortcodes/class-upload-handler.php 2019-03-16 21:35:34 UTC (rev 8469)
+++ sites/trunk/wordpress.org/public_html/wp-content/plugins/plugin-directory/shortcodes/class-upload-handler.php 2019-03-16 22:24:06 UTC (rev 8470)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -77,10 +77,10 @@
</span><span class="cx" style="display: block; padding: 0 10px"> $error = __( 'Error: The plugin has no name.', 'wporg-plugins' );
</span><span class="cx" style="display: block; padding: 0 10px">
</span><span class="cx" style="display: block; padding: 0 10px"> return new \WP_Error( 'no_name', $error . ' ' . sprintf(
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- /* translators: 1: plugin header line, 2: Codex URL */
- __( 'Add a %1$s line to your main plugin file and upload the plugin again. <a href="%2$s">Plugin Headers</a>', 'wporg-plugins' ),
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ /* translators: 1: plugin header line, 2: Documentation URL */
+ __( 'Add a %1$s line to your main plugin file and upload the plugin again. For more information, please review our documentation on <a href="%2$s">Plugin Headers</a>.', 'wporg-plugins' ),
</ins><span class="cx" style="display: block; padding: 0 10px"> '<code>Plugin Name:</code>',
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- __( 'https://codex.wordpress.org/File_Header', 'wporg-plugins' )
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ __( 'https://developer.wordpress.org/plugins/plugin-basics/header-requirements/', 'wporg-plugins' )
</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">@@ -95,7 +95,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">
</span><span class="cx" style="display: block; padding: 0 10px"> return new \WP_Error( 'unsupported_name', $error . ' ' . sprintf(
</span><span class="cx" style="display: block; padding: 0 10px"> /* translators: %s: 'Plugin Name:' */
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- __( 'Plugin names can only contain latin letters (A-z), numbers, spaces, and hyphens. Please change the %s line in your main plugin file and upload it again.', 'wporg-plugins' ),
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ __( 'Plugin names may only contain latin letters (A-z), numbers, spaces, and hyphens. Please change the %s line in your main plugin file and upload it again.', 'wporg-plugins' ),
</ins><span class="cx" style="display: block; padding: 0 10px"> esc_html( $this->plugin['Name'] ),
</span><span class="cx" style="display: block; padding: 0 10px"> '<code>Plugin Name:</code>'
</span><span class="cx" style="display: block; padding: 0 10px"> ) );
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -121,7 +121,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">
</span><span class="cx" style="display: block; padding: 0 10px"> return new \WP_Error( 'already_exists', $error . ' ' . sprintf(
</span><span class="cx" style="display: block; padding: 0 10px"> /* translators: 1: plugin slug, 2: 'Plugin Name:' */
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- __( 'There is already a plugin called %1$s by a different author. Please change the %2$s line in your main plugin file and upload it again.', 'wporg-plugins' ),
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ __( 'There is already a plugin with the name %1$s in the directory. Please rename your plugin by changing the %2$s line in your main plugin file and upload it again.', 'wporg-plugins' ),
</ins><span class="cx" style="display: block; padding: 0 10px"> '<code>' . $this->plugin_slug . '</code>',
</span><span class="cx" style="display: block; padding: 0 10px"> '<code>Plugin Name:</code>'
</span><span class="cx" style="display: block; padding: 0 10px"> ) );
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -132,9 +132,10 @@
</span><span class="cx" style="display: block; padding: 0 10px"> $error = __( 'Error: The plugin has already been submitted.', 'wporg-plugins' );
</span><span class="cx" style="display: block; padding: 0 10px">
</span><span class="cx" style="display: block; padding: 0 10px"> return new \WP_Error( 'already_submitted', $error . ' ' . sprintf(
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- /* translators: 1: plugin slug, 2: plugins@wordpress.org */
- __( 'You have already submitted a plugin called %1$s. Please be patient and wait for a review. If you have made a mistake, email <a href="mailto:%2$s">%2$s</a> and let us know.', 'wporg-plugins' ),
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ /* translators: 1: plugin slug, 2: Documentation URL, 3: plugins@wordpress.org */
+ __( 'You have already submitted a plugin named %1$s. There is no need to resubmit existing plugins, even for new versions. Simply update your plugin within the directory via <a href="%2$s">SVN</a>. If you need assistance, email <a href="mailto:%3$s">%3$s</a> and let us know.', 'wporg-plugins' ),
</ins><span class="cx" style="display: block; padding: 0 10px"> '<code>' . $this->plugin_slug . '</code>',
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ __( 'https://developer.wordpress.org/plugins/wordpress-org/how-to-use-subversion/', 'wporg-plugins' ),
</ins><span class="cx" style="display: block; padding: 0 10px"> 'plugins@wordpress.org'
</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">@@ -144,7 +145,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">
</span><span class="cx" style="display: block; padding: 0 10px"> return new \WP_Error( 'no_description', $error . ' ' . sprintf(
</span><span class="cx" style="display: block; padding: 0 10px"> /* translators: 1: plugin header line, 2: Documentation URL */
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- __( 'Add a %1$s line to your main plugin file and upload the plugin again. <a href="%2$s">Plugin Headers</a>', 'wporg-plugins' ),
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ __( 'Add a %1$s line to your main plugin file and upload the plugin again. Please review our documentation on <a href="%2$s">Plugin Headers</a> for more information.', 'wporg-plugins' ),
</ins><span class="cx" style="display: block; padding: 0 10px"> '<code>Description:</code>',
</span><span class="cx" style="display: block; padding: 0 10px"> __( 'https://developer.wordpress.org/plugins/the-basics/header-requirements/', 'wporg-plugins' )
</span><span class="cx" style="display: block; padding: 0 10px"> ) );
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -155,7 +156,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">
</span><span class="cx" style="display: block; padding: 0 10px"> return new \WP_Error( 'no_version', $error . ' ' . sprintf(
</span><span class="cx" style="display: block; padding: 0 10px"> /* translators: 1: plugin header line, 2: Documentation URL */
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- __( 'Add a %1$s line to your main plugin file and upload the plugin again. <a href="%2$s">Plugin Headers</a>', 'wporg-plugins' ),
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ __( 'Add a %1$s line to your main plugin file and upload the plugin again. Please review our documentation on <a href="%2$s">Plugin Headers</a> for more information.', 'wporg-plugins' ),
</ins><span class="cx" style="display: block; padding: 0 10px"> '<code>Version:</code>',
</span><span class="cx" style="display: block; padding: 0 10px"> __( 'https://developer.wordpress.org/plugins/the-basics/header-requirements/', 'wporg-plugins' )
</span><span class="cx" style="display: block; padding: 0 10px"> ) );
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -166,7 +167,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">
</span><span class="cx" style="display: block; padding: 0 10px"> return new \WP_Error( 'invalid_version', $error . ' ' . sprintf(
</span><span class="cx" style="display: block; padding: 0 10px"> /* translators: %s: 'Version:' */
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- __( 'Version strings can only contain numeric and period characters (like 1.2). Please fix the %s line in your main plugin file and upload the plugin again.', 'wporg-plugins' ),
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ __( 'Version strings can only contain numeric and period characters (i.e. 1.2). Please correct the %s line in your main plugin file and upload the plugin again.', 'wporg-plugins' ),
</ins><span class="cx" style="display: block; padding: 0 10px"> '<code>Version:</code>'
</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">@@ -177,7 +178,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">
</span><span class="cx" style="display: block; padding: 0 10px"> return new \WP_Error(
</span><span class="cx" style="display: block; padding: 0 10px"> 'plugin_author_uri', $error . ' ' .
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- __( 'A plugin URL is a page/site that provides details about this specific plugin. An author URL is a page/site that provides information about the author of the plugin. You are not required to provide both, so pick the one that best applies to your URL.', 'wporg-plugins' )
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ __( 'A plugin URI (Unique Record Indicator) is a webpage that provides details about this specific plugin. An author URI is a webpage that provides information about the author of the plugin. Those two URIs must be different. You are not required to provide both, so pick the one that best applies to your situation.', 'wporg-plugins' )
</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">@@ -202,7 +203,7 @@
</span><span class="cx" style="display: block; padding: 0 10px"> $error = __( 'Error: The plugin has failed the automated checks.', 'wporg-plugins' );
</span><span class="cx" style="display: block; padding: 0 10px">
</span><span class="cx" style="display: block; padding: 0 10px"> return new \WP_Error( 'failed_checks', $error . ' ' . sprintf(
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- /* translators: 1: Plugin Check Plugin URL, 2: make.wordpress.org/plugins */
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ /* translators: 1: Plugin Check Plugin URL, 2: https://make.wordpress.org/plugins */
</ins><span class="cx" style="display: block; padding: 0 10px"> __( 'Please correct the problems with the plugin and upload it again. You can also use the <a href="%1$s">Plugin Check Plugin</a> to test your plugin before uploading. If you have any questions about this please post them to %2$s.', 'wporg-plugins' ),
</span><span class="cx" style="display: block; padding: 0 10px"> '//wordpress.org/plugins/plugin-check/',
</span><span class="cx" style="display: block; padding: 0 10px"> '<a href="https://make.wordpress.org/plugins">https://make.wordpress.org/plugins</a>'
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -276,21 +277,30 @@
</span><span class="cx" style="display: block; padding: 0 10px">
</span><span class="cx" style="display: block; padding: 0 10px"> do_action( 'plugin_upload', $this->plugin, $plugin_post );
</span><span class="cx" style="display: block; padding: 0 10px">
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- /* translators: 1: plugin name, 2: plugin slug, 3: plugins@wordpress.org */
</del><span class="cx" style="display: block; padding: 0 10px"> $message = sprintf(
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- __( 'Thank you for uploading %1$s to the WordPress Plugin Directory. It has been given the initial plugin slug of %2$s, however that is subject to change based on the results of your code review.' ),
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ /* translators: 1: plugin name, 2: plugin slug, 3: plugins@wordpress.org */
+ __( 'Thank you for uploading %1$s to the WordPress Plugin Directory. It has been given the initial plugin slug of %2$s, however that is subject to change based on the results of your code review. If this slug is incorrect, please contact us immediately, as it cannot be changed once your plugin is approved.' ),
</ins><span class="cx" style="display: block; padding: 0 10px"> esc_html( $this->plugin['Name'] ),
</span><span class="cx" style="display: block; padding: 0 10px"> '<code>' . $this->plugin_slug . '</code>'
</span><span class="cx" style="display: block; padding: 0 10px"> ) . '</p><p>';
</span><span class="cx" style="display: block; padding: 0 10px">
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- /* translators: 1: plugins@wordpress.org */
</del><span class="cx" style="display: block; padding: 0 10px"> $message .= sprintf(
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ /* translators: 1: plugins@wordpress.org */
</ins><span class="cx" style="display: block; padding: 0 10px"> __( 'We’ve sent you an email verifying this submission. Please make sure to whitelist our email address - <a href="mailto:%1$s">%1$s</a> - to ensure you receive all our communications.' ),
</span><span class="cx" style="display: block; padding: 0 10px"> 'plugins@wordpress.org'
</span><span class="cx" style="display: block; padding: 0 10px"> ) . '</p><p>';
</span><span class="cx" style="display: block; padding: 0 10px">
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- $message .= __( 'If there is any error in your submission, please email us as we can correct many issues before approval.', 'wporg-plugins' ) . '</p><p>';
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ // Warn if the plugin starts with a reserved slug.
+ if ( $this->starts_with_reserved_slug() ) {
+ $message .= sprintf(
+ /* translators: %s: plugin name */
+ __( 'Warning: Your plugin will probably need to be renamed. Your chosen plugin name - %s - starts with a term that may belong to another company. When we review your submision we will either correct this for you or request you approve a new name.' ),
+ esc_html( $this->plugin['Name'] )
+ ) . '</p><p>';
+ }
</ins><span class="cx" style="display: block; padding: 0 10px">
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ $message .= __( 'If there is any error in your submission, please email us as soon as possible. We can correct many issues before approval.', 'wporg-plugins' ) . '</p><p>';
+
</ins><span class="cx" style="display: block; padding: 0 10px"> $message .= sprintf(
</span><span class="cx" style="display: block; padding: 0 10px"> /* translators: 1: URL to guidelines; 2: URL to FAQs; */
</span><span class="cx" style="display: block; padding: 0 10px"> wp_kses_post( __( 'While you’re waiting on your review, please take the time to read <a href="%1$s">the developer guidelines</a> and <a href="%2$s">the developer FAQ</a> as they will address most questions.', 'wporg-plugins' ) ),
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -330,6 +340,33 @@
</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">+ * Whether the uploaded plugin uses a slug commonly abused by non-reps.
+ *
+ * @return bool
+ */
+ public function starts_with_reserved_slug() {
+ $abused_slugs = array(
+ 'apple',
+ 'facebook',
+ 'google',
+ 'ios',
+ 'jetpack',
+ 'microsoft',
+ 'paypal',
+ 'twitter',
+ 'woocommerce',
+ 'wordpress',
+ 'yoast',
+ );
+
+ // Get the slug in an array.
+ $slug = explode( '-', $this->plugin_slug );
+
+ // If the slug is the same as the first term, flag for abuse.
+ return in_array( $slug[0], $abused_slugs );
+ }
+
+ /**
</ins><span class="cx" style="display: block; padding: 0 10px"> * Find the plugin readme file.
</span><span class="cx" style="display: block; padding: 0 10px"> *
</span><span class="cx" style="display: block; padding: 0 10px"> * Looks for either a readme.txt or readme.md file, prioritizing readme.txt.
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -339,7 +376,7 @@
</span><span class="cx" style="display: block; padding: 0 10px"> protected function find_readme_file() {
</span><span class="cx" style="display: block; padding: 0 10px"> $files = Filesystem::list_files( $this->plugin_root, false /* non-recursive */, '!^readme\.(txt|md)$!i' );
</span><span class="cx" style="display: block; padding: 0 10px">
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- // Prioritize readme.txt
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ // Prioritize readme.txt file.
</ins><span class="cx" style="display: block; padding: 0 10px"> foreach ( $files as $file ) {
</span><span class="cx" style="display: block; padding: 0 10px"> if ( '.txt' === strtolower( substr( $file, -4 ) ) ) {
</span><span class="cx" style="display: block; padding: 0 10px"> return $file;
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -358,7 +395,7 @@
</span><span class="cx" style="display: block; padding: 0 10px"> return true;
</span><span class="cx" style="display: block; padding: 0 10px"> // Run the checks.
</span><span class="cx" style="display: block; padding: 0 10px"> // @todo Include plugin checker.
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- // pass $this->plugin_root as the plugin root
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ // Pass $this->plugin_root as the plugin root.
</ins><span class="cx" style="display: block; padding: 0 10px"> $result = true;
</span><span class="cx" style="display: block; padding: 0 10px">
</span><span class="cx" style="display: block; padding: 0 10px"> // Display the errors.
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -404,7 +441,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">
</span><span class="cx" style="display: block; padding: 0 10px"> /* translators: %s: plugin name */
</span><span class="cx" style="display: block; padding: 0 10px"> $email_subject = sprintf(
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">- __( '[WordPress Plugin Directory] New Plugin - %s', 'wporg-plugins' ),
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ __( '[WordPress Plugin Directory] Successful Plugin Submission - %s', 'wporg-plugins' ),
</ins><span class="cx" style="display: block; padding: 0 10px"> $this->plugin['Name']
</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">@@ -415,9 +452,9 @@
</span><span class="cx" style="display: block; padding: 0 10px">
</span><span class="cx" style="display: block; padding: 0 10px"> Your plugin has been given the initial slug of %2$s, however this is subject to change based on the results of your review.
</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 there is any problem with this submission, please reply to this email and let us know right away. In most cases, we can correct errors as long as the plugin has not yet been approved. For situations like an incorrect plugin slug, we are unable to change that post approval, so if you do not let us know of your requirements now, we will be unable to honor them later.
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+If there is any problem with this submission, please reply to this email and let us know right away. In most cases, we can correct errors as long as the plugin has not yet been approved. For situations like an incorrect plugin slug, we are unable to change that post approval. If you do not inform us of any requirements now, we will be unable to honor them later.
</ins><span class="cx" style="display: block; padding: 0 10px">
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-We recommend you review the following links to understand the
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+We recommend you review the following links to understand the review process and our expectations:
</ins><span class="cx" style="display: block; padding: 0 10px">
</span><span class="cx" style="display: block; padding: 0 10px"> Guidelines: https://developer.wordpress.org/plugins/wordpress-org/detailed-plugin-guidelines/
</span><span class="cx" style="display: block; padding: 0 10px"> Frequently Asked Questions: https://developer.wordpress.org/plugins/wordpress-org/plugin-developer-faq/
</span></span></pre>
</div>
</div>
</body>
</html>