PowerPress Podcasting plugin by Blubrry - Version 6.2.1

Version Description

  • Released on 11/22/2015
  • Removed logic added in last updated to call the do_shortcode function. We originally added this code to solve a theme conflict, it appears to have cause problems for others so we're reverting back. If your theme overrides the audio player shortcode (player will only appear correctly when calling do_shortcode('[audio]')), then you must include the following define in your wp-config.php: POWERPRESS_DO_SHORTCODE.
  • Added new itunes_subtitle="true" attribute for powerpress_subscribe shortcode, will put your itunes subtitle below your podcast title in the subscribe widget. (Thanks Robert for the feature suggestion!)
  • Added new subtitle="your custom subtitle" attribute for powerpress_subscribe shortcode, you can now customize a subtitle that goes below your title. (Again thanks Robert!)
  • Added logic to use cURL library when native HTTP library in WordPress fails. (Thanks Zuke for helping us debug the problem!)
  • Added new logic to check for the_content/the_excerpt used in the http head. Should fix issue for folks using Yoast's SEO plugin with Facebook social enabled.
  • Added code for the Clammr audio player to work in the "play in new window".
  • Added new "Having Issues?" option, "wp_head check", will not add player and links if within the wp_head function call.
  • Updated links for submitting to iTunes and Google Play Music Podcast Portal.
Download this release

Release Info

Developer amandato
Plugin Icon 128x128 PowerPress Podcasting plugin by Blubrry
Version 6.2.1
Comparing to
See all releases

Code changes from version 6.2 to 6.2.1

css/subscribe.css CHANGED
@@ -32,6 +32,12 @@
32
  font-size: 200% !important;
33
  color: #222222 !important;
34
  }
 
 
 
 
 
 
35
 
36
  .pp-sub-widget a.pp-sub-btn {
37
  width: 100%;
32
  font-size: 200% !important;
33
  color: #222222 !important;
34
  }
35
+ .pp-sub-widget p.pp-sub-st {
36
+ margin: 5px 10px 0 10px !important;
37
+ padding: 0 !important;
38
+ font-size: 100% !important;
39
+ color: #222222 !important;
40
+ }
41
 
42
  .pp-sub-widget a.pp-sub-btn {
43
  width: 100%;
itunes_default.jpg CHANGED
Binary file
powerpress-player.php CHANGED
@@ -1171,28 +1171,13 @@ function powerpress_do_pinw($pinw, $process_podpress)
1171
  <?php
1172
 
1173
  do_action('wp_powerpress_player_scripts');
1174
-
1175
- $include_mejs = false;
1176
- if( empty($GeneralSettings['player']) || empty($GeneralSettings['video_player']) )
1177
- {
1178
- $include_mejs = true;
1179
- }
1180
- else if( !empty($GeneralSettings['player']) && ($GeneralSettings['player'] == 'mediaelement-audio' || $GeneralSettings['video_player'] == 'mediaelement-video' ) )
1181
- {
1182
- $include_mejs = true;
1183
- }
1184
 
1185
- if( $include_mejs )
1186
- {
1187
- wp_enqueue_style('wp-mediaelement');
1188
- wp_enqueue_script('wp-mediaelement');
1189
  }
1190
 
1191
-
1192
- wp_print_styles();
1193
- wp_print_scripts();
1194
-
1195
- //wp_head();
1196
  ?>
1197
  <style type="text/css">
1198
  body { font-size: 13px; font-family: Arial, Helvetica, sans-serif; /* width: 100%; min-height: 100%; } html { height: 100%; */ }
@@ -1219,8 +1204,15 @@ body { font-size: 13px; font-family: Arial, Helvetica, sans-serif; /* width: 100
1219
  echo apply_filters('powerpress_player', '', powerpress_add_flag_to_redirect_url($EpisodeData['url'], 'p'), array('feed'=>$feed_slug, 'autoplay'=>true, 'type'=>$EpisodeData['type']) );
1220
  }
1221
 
 
 
1222
  ?>
1223
  </div>
 
 
 
 
 
1224
  </body>
1225
  </html>
1226
  <?php
@@ -1406,7 +1398,7 @@ function powerpressplayer_build_mediaelementvideo($media_url, $EpisodeData=array
1406
 
1407
  // Double check that WordPress is providing the shortcode...
1408
  global $shortcode_tags;
1409
- if( !defined('POWERPRESS_DO_SHORTCODE') && !empty($shortcode_tags['video']) && is_string($shortcode_tags['video']) && $shortcode_tags['video'] == 'wp_video_shortcode' ) {
1410
  $shortcode = wp_video_shortcode( $attr );
1411
  } else {
1412
  $shortcode_value = '[video ';
@@ -1517,7 +1509,7 @@ function powerpressplayer_build_mediaelementaudio($media_url, $EpisodeData=array
1517
  } else {
1518
  // Double check that WordPress is providing the shortcode...
1519
  global $shortcode_tags;
1520
- if( !defined('POWERPRESS_DO_SHORTCODE') && !empty($shortcode_tags['audio']) && is_string($shortcode_tags['audio']) && $shortcode_tags['audio'] == 'wp_audio_shortcode' ) {
1521
  $content .= wp_audio_shortcode( $attr );
1522
  } else {
1523
  $content .= do_shortcode( '[audio src="'. esc_attr($media_url) .'" autoplay="'. ( $autoplay ?'on':'') .'" loop="" preload="none"]');
@@ -1848,4 +1840,4 @@ function powerpressplayer_build_videojs($media_url, $EpisodeData = array())
1848
  return $content;
1849
  }
1850
 
1851
- ?>
1171
  <?php
1172
 
1173
  do_action('wp_powerpress_player_scripts');
 
 
 
 
 
 
 
 
 
 
1174
 
1175
+
1176
+ if( !empty($GLOBALS['ClammrPlayer']) ) {
1177
+ $GLOBALS['ClammrPlayer']->initialize();
1178
+ wp_head();
1179
  }
1180
 
 
 
 
 
 
1181
  ?>
1182
  <style type="text/css">
1183
  body { font-size: 13px; font-family: Arial, Helvetica, sans-serif; /* width: 100%; min-height: 100%; } html { height: 100%; */ }
1204
  echo apply_filters('powerpress_player', '', powerpress_add_flag_to_redirect_url($EpisodeData['url'], 'p'), array('feed'=>$feed_slug, 'autoplay'=>true, 'type'=>$EpisodeData['type']) );
1205
  }
1206
 
1207
+ wp_print_styles();
1208
+ wp_print_scripts();
1209
  ?>
1210
  </div>
1211
+ <?php
1212
+ if( !empty($GLOBALS['ClammrPlayer']) ) {
1213
+ wp_footer();
1214
+ }
1215
+ ?>
1216
  </body>
1217
  </html>
1218
  <?php
1398
 
1399
  // Double check that WordPress is providing the shortcode...
1400
  global $shortcode_tags;
1401
+ if( !defined('POWERPRESS_DO_SHORTCODE') ) {
1402
  $shortcode = wp_video_shortcode( $attr );
1403
  } else {
1404
  $shortcode_value = '[video ';
1509
  } else {
1510
  // Double check that WordPress is providing the shortcode...
1511
  global $shortcode_tags;
1512
+ if( !defined('POWERPRESS_DO_SHORTCODE') ) { // && !empty($shortcode_tags['audio']) && is_string($shortcode_tags['audio']) && $shortcode_tags['audio'] == 'wp_audio_shortcode' ) {
1513
  $content .= wp_audio_shortcode( $attr );
1514
  } else {
1515
  $content .= do_shortcode( '[audio src="'. esc_attr($media_url) .'" autoplay="'. ( $autoplay ?'on':'') .'" loop="" preload="none"]');
1840
  return $content;
1841
  }
1842
 
1843
+
powerpress-subscribe.php CHANGED
@@ -81,7 +81,7 @@ function powerpresssubscribe_get_settings($ExtraData)
81
 
82
  if( !empty($Settings) )
83
  {
84
- $Settings['title'] = $Settings['title'];
85
  if( empty($Settings['title']) )
86
  $Settings['title'] = get_bloginfo('name') . get_wp_title_rss(); // Get category title
87
  if( !empty($Settings['feed_redirect_url']) )
@@ -307,10 +307,13 @@ function powerpress_subscribe_shortcode( $attr ) {
307
  //'taxonomy'=>'', // Used for PowerPress (specify taxonomy name)
308
 
309
  'title' => '', // Display custom title of show/program
 
310
  'feed_url'=>'', // provide subscribe widget for specific RSS feed
311
  'itunes_url'=>'', // provide subscribe widget for specific iTunes subscribe URL
312
  'image_url'=>'', // provide subscribe widget for specific iTunes subscribe URL
313
- 'heading'=>'', // heading label for
 
 
314
 
315
  // Appearance attributes
316
  'itunes_button'=>'', // Set to 'true' to use only the iTunes button
@@ -375,11 +378,19 @@ function powerpress_subscribe_shortcode( $attr ) {
375
 
376
  // Podcast title handling
377
  if( isset($attr['title']) && empty($attr['title']) && isset($Settings['title']) )
378
- unset( $Settings['title'] ); // Special case, if the title is unset, then it shuld not be displayed
379
  else if( !empty($attr['title']) )
380
  $Settings['title'] = $attr['title'];
381
  else if( !isset($Settings['title']) )
382
  $Settings['title'] = ''; // This way the title can be detected
 
 
 
 
 
 
 
 
383
 
384
  if( !empty($attr['itunes_url']) )
385
  $Settings['itunes_url'] = $attr['itunes_url'];
@@ -464,17 +475,27 @@ function powerpress_do_subscribe_widget($settings)
464
  $html .= '<div class="pp-sub-widget pp-sub-widget-'. esc_attr($settings['style']) .'">';
465
  if( !empty($settings['title']) )
466
  {
467
- if( !isset($settings['heading']) )
468
  $settings['heading'] = __('Subscribe to', 'powerpress');
469
-
470
- if( !empty($settings['heading']) ) {
471
- $html .= '<div class="pp-sub-h">'. esc_html($settings['heading']) .'</div>'; }
 
 
 
472
  $html .= '<h2 class="pp-sub-t">'. esc_html( $settings['title'] ) .'</h2>';
473
  }
474
  else
475
  {
476
  $settings['title'] = ''; // Make sure it's an empty string
477
  }
 
 
 
 
 
 
 
478
  $html .= '<div class="pp-sub-bx">';
479
  $html .= '<img class="pp-sub-l" src="'. esc_url( $settings['image_url'] ) .'" '. (!empty($settings['title'])?' title="'. esc_attr($settings['title']).'" ':'') .'/>';
480
  $html .= '<div class="pp-sub-btns">';
81
 
82
  if( !empty($Settings) )
83
  {
84
+ //$Settings['title'] = $Settings['title'];
85
  if( empty($Settings['title']) )
86
  $Settings['title'] = get_bloginfo('name') . get_wp_title_rss(); // Get category title
87
  if( !empty($Settings['feed_redirect_url']) )
307
  //'taxonomy'=>'', // Used for PowerPress (specify taxonomy name)
308
 
309
  'title' => '', // Display custom title of show/program
310
+ 'subtitle'=>'', // Subtitle for podcast (optional)
311
  'feed_url'=>'', // provide subscribe widget for specific RSS feed
312
  'itunes_url'=>'', // provide subscribe widget for specific iTunes subscribe URL
313
  'image_url'=>'', // provide subscribe widget for specific iTunes subscribe URL
314
+ 'heading'=>'', // heading label for podcast
315
+
316
+ 'itunes_subtitle'=>'', // Set to 'true' to include the iTunes subtitle in subscribe widget
317
 
318
  // Appearance attributes
319
  'itunes_button'=>'', // Set to 'true' to use only the iTunes button
378
 
379
  // Podcast title handling
380
  if( isset($attr['title']) && empty($attr['title']) && isset($Settings['title']) )
381
+ unset( $Settings['title'] ); // Special case, if the title is unset, then it should not be displayed
382
  else if( !empty($attr['title']) )
383
  $Settings['title'] = $attr['title'];
384
  else if( !isset($Settings['title']) )
385
  $Settings['title'] = ''; // This way the title can be detected
386
+
387
+ unset($Settings['subtitle']); // Make sure no subtitle passes this point
388
+ if( !empty($attr['itunes_subtitle']) && !empty($Settings['itunes_subtitle']) ) {
389
+ $Settings['subtitle'] = $Settings['itunes_subtitle'];
390
+ } else if( !empty($attr['subtitle']) ) {
391
+ $Settings['subtitle'] = $attr['subtitle'];
392
+ }
393
+
394
 
395
  if( !empty($attr['itunes_url']) )
396
  $Settings['itunes_url'] = $attr['itunes_url'];
475
  $html .= '<div class="pp-sub-widget pp-sub-widget-'. esc_attr($settings['style']) .'">';
476
  if( !empty($settings['title']) )
477
  {
478
+ if( !isset($settings['heading']) ) { // If not specified in the shortcode
479
  $settings['heading'] = __('Subscribe to', 'powerpress');
480
+ }
481
+
482
+ if( !empty($settings['heading']) ) { // If there is a value set for the heading, lets use it
483
+ $html .= '<div class="pp-sub-h">'. esc_html($settings['heading']) .'</div>';
484
+ }
485
+
486
  $html .= '<h2 class="pp-sub-t">'. esc_html( $settings['title'] ) .'</h2>';
487
  }
488
  else
489
  {
490
  $settings['title'] = ''; // Make sure it's an empty string
491
  }
492
+
493
+ if( !empty($settings['subtitle']) )
494
+ {
495
+ $html .= '<p class="pp-sub-st">'. esc_html( $settings['subtitle'] ) .'</p>';
496
+ }
497
+
498
+ // Lets build the subscribe box...
499
  $html .= '<div class="pp-sub-bx">';
500
  $html .= '<img class="pp-sub-l" src="'. esc_url( $settings['image_url'] ) .'" '. (!empty($settings['title'])?' title="'. esc_attr($settings['title']).'" ':'') .'/>';
501
  $html .= '<div class="pp-sub-btns">';
powerpress.php CHANGED
@@ -2,12 +2,12 @@
2
  /*
3
  Plugin Name: Blubrry PowerPress
4
  Plugin URI: http://create.blubrry.com/resources/powerpress/
5
- Description: <a href="http://create.blubrry.com/resources/powerpress/" target="_blank">Blubrry PowerPress</a> adds podcasting support to your blog. Features include: media player, 3rd party statistics, iTunes integration, Blubrry Services (Media Statistics and Hosting) integration and a lot more.
6
- Version: 6.2
7
  Author: Blubrry
8
  Author URI: http://www.blubrry.com/
9
  Requires at least: 3.7
10
- Tested up to: 4.3.1
11
  Text Domain: powerpress
12
  Change Log:
13
  Please see readme.txt for detailed change log.
@@ -35,7 +35,7 @@ if( !function_exists('add_action') )
35
  die("access denied.");
36
 
37
  // WP_PLUGIN_DIR (REMEMBER TO USE THIS DEFINE IF NEEDED)
38
- define('POWERPRESS_VERSION', '6.2' );
39
 
40
  // Translation support:
41
  if ( !defined('POWERPRESS_ABSPATH') )
@@ -91,7 +91,7 @@ if( defined('POWERPRESS_DEBUG') ) {
91
  }
92
 
93
  if( !defined('POWERPRESS_SUBSCRIBE') )
94
- define('POWERPRESS_SUBSCRIBE', true); // Temporary until we finish tweaking the features
95
 
96
  // Set regular expression values for determining mobile devices
97
  if( !defined('POWERPRESS_MOBILE_REGEX') )
@@ -137,16 +137,25 @@ function powerpress_content($content)
137
  if( defined('JETPACK__VERSION') && version_compare(JETPACK__VERSION, '2.0', '>=') ) {
138
  $GeneralSettings['player_aggressive'] = 1; // Jet pack still doesn't behave with PowerPress the_content
139
  }
 
 
 
140
  }
141
 
142
  if( !empty($GeneralSettings['player_aggressive']) )
143
  {
144
- if( $GeneralSettings['player_aggressive'] == 2 ) // If we do not have theme issues then lets keep this logic clean. and only display playes after the wp_head only
 
 
 
 
 
 
145
  {
146
  if( empty($GLOBALS['powerpress_wp_head_completed']) )
147
  return $content;
148
  }
149
- else
150
  {
151
  if( strstr($content, '<!--powerpress_player-->') !== false )
152
  return $content; // The players were already added to the content
@@ -3115,6 +3124,25 @@ function powerpress_get_api_array()
3115
 
3116
  return $return;
3117
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3118
  /*
3119
  End Helper Functions
3120
  */
@@ -3137,5 +3165,3 @@ if( defined('POWERPRESS_NEW_CODE') && POWERPRESS_NEW_CODE && file_exists(POWERPR
3137
  require_once(POWERPRESS_ABSPATH.'/powerpress-new-code.php');
3138
  }
3139
  */
3140
-
3141
- ?>
2
  /*
3
  Plugin Name: Blubrry PowerPress
4
  Plugin URI: http://create.blubrry.com/resources/powerpress/
5
+ Description: <a href="http://create.blubrry.com/resources/powerpress/" target="_blank">Blubrry PowerPress</a> is the No. 1 Podcasting plugin for WordPress. Developed by podcasters for podcasters; features include Simple and Advanced modes, multiple audio/video player options, subscribe to podcast tools, podcast SEO features, and more! Fully supports iTunes, Google Play, Stitcher, and Blubrry Podcasting directories, as well as all podcast applications and clients.
6
+ Version: 6.2.1
7
  Author: Blubrry
8
  Author URI: http://www.blubrry.com/
9
  Requires at least: 3.7
10
+ Tested up to: 4.4
11
  Text Domain: powerpress
12
  Change Log:
13
  Please see readme.txt for detailed change log.
35
  die("access denied.");
36
 
37
  // WP_PLUGIN_DIR (REMEMBER TO USE THIS DEFINE IF NEEDED)
38
+ define('POWERPRESS_VERSION', '6.2.1' );
39
 
40
  // Translation support:
41
  if ( !defined('POWERPRESS_ABSPATH') )
91
  }
92
 
93
  if( !defined('POWERPRESS_SUBSCRIBE') )
94
+ define('POWERPRESS_SUBSCRIBE', true);
95
 
96
  // Set regular expression values for determining mobile devices
97
  if( !defined('POWERPRESS_MOBILE_REGEX') )
137
  if( defined('JETPACK__VERSION') && version_compare(JETPACK__VERSION, '2.0', '>=') ) {
138
  $GeneralSettings['player_aggressive'] = 1; // Jet pack still doesn't behave with PowerPress the_content
139
  }
140
+ if( defined('WPSEO_VERSION') ) {
141
+ $GeneralSettings['player_aggressive'] = 4;
142
+ }
143
  }
144
 
145
  if( !empty($GeneralSettings['player_aggressive']) )
146
  {
147
+ if( $GeneralSettings['player_aggressive'] == 4 )
148
+ {
149
+ $in_http_head = powerpress_in_wp_head();
150
+ if( $in_http_head === true )
151
+ return $content;
152
+ }
153
+ else if( $GeneralSettings['player_aggressive'] == 2 ) // If we do not have theme issues then lets keep this logic clean. and only display playes after the wp_head only
154
  {
155
  if( empty($GLOBALS['powerpress_wp_head_completed']) )
156
  return $content;
157
  }
158
+ else // method 1 or 3...
159
  {
160
  if( strstr($content, '<!--powerpress_player-->') !== false )
161
  return $content; // The players were already added to the content
3124
 
3125
  return $return;
3126
  }
3127
+
3128
+
3129
+ function powerpress_in_wp_head()
3130
+ {
3131
+ $e = new Exception();
3132
+ $trace = $e->getTrace();
3133
+
3134
+ if( !empty($trace) ) {
3135
+ while( list($index,$call) = each($trace) ) {
3136
+ if( isset($call['function']) ) {
3137
+ // Which calls should we not add the player and links...
3138
+ switch( $call['function'] ) {
3139
+ case 'wp_head': return true; break;
3140
+ }
3141
+ }
3142
+ }
3143
+ }
3144
+ return false;
3145
+ }
3146
  /*
3147
  End Helper Functions
3148
  */
3165
  require_once(POWERPRESS_ABSPATH.'/powerpress-new-code.php');
3166
  }
3167
  */
 
 
powerpressadmin-basic.php CHANGED
@@ -734,43 +734,41 @@ function powerpressadmin_edit_googleplay($FeedSettings, $General, $FeedAttribs =
734
  $FeedSettings['googleplay_explicit'] = '';
735
  if( empty($FeedSettings['googleplay_cat']) )
736
  $FeedSettings['googleplay_cat'] = '';
737
-
738
- ?>
739
- <h3><?php echo __('Google Play Settings', 'powerpress'); ?> <?php echo powerpressadmin_new(); ?></h3>
740
- <table class="form-table">
741
- <tr valign="top">
742
- <th scope="row"><?php echo __('Google Play Listing URL', 'powerpress'); ?></th>
743
- <td>
744
- <input type="text" style="width: 80%;" name="Feed[googleplay_url]" value="<?php echo esc_attr($FeedSettings['googleplay_url']); ?>" maxlength="250" />
745
- <p><?php echo __('Your listing URL will be issued to you from Google Play Music.', 'powerpress'); ?></p>
746
- <!-- <p><?php echo sprintf(__('e.g. %s', 'powerpress'), 'http://itunes.apple.com/podcast/title-of-podcast/id<strong>000000000</strong>'); ?></p> -->
747
-
748
- <p><?php echo sprintf( __('Click the following link to %s.', 'powerpress'), '<a href="https://play.google.com/music/podcasts/publish" target="_blank">'. __('Publish a Podcast on Google Play Music', 'powerpress') .'</a>'); ?>
749
- </p>
750
- <p>
751
- <?php echo __('Recommended feed to submit to Google Play Music: ', 'powerpress'); ?>
752
- <?php
753
 
 
754
  switch( $FeedAttribs['type'] )
755
  {
756
  case 'ttid':
757
  case 'category': {
758
- echo get_category_feed_link($cat_ID);
759
  }; break;
760
  case 'channel': {
761
- echo get_feed_link($feed_slug);
762
  }; break;
763
  case 'post_type': {
764
- $url = get_post_type_archive_feed_link($FeedAttribs['post_type'], $feed_slug);
765
- echo $url;
766
  }; break;
767
  case 'general':
768
  default: {
769
- echo get_feed_link('podcast');
770
  }
771
  }
772
 
773
- ?>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
774
  </p>
775
  </td>
776
  </tr>
@@ -868,42 +866,40 @@ function powerpressadmin_edit_itunes_general($FeedSettings, $General, $FeedAttri
868
  $FeedSettings['itunes_url'] = $General['itunes_url'];
869
  }
870
 
871
- ?>
872
- <h3><?php echo __('iTunes Listing Information', 'powerpress'); ?></h3>
873
- <table class="form-table">
874
- <tr valign="top">
875
- <th scope="row"><?php echo __('iTunes Subscription URL', 'powerpress'); ?></th>
876
- <td>
877
- <input type="text" style="width: 80%;" name="Feed[itunes_url]" value="<?php echo esc_attr($FeedSettings['itunes_url']); ?>" maxlength="250" />
878
- <p><?php echo sprintf(__('e.g. %s', 'powerpress'), 'http://itunes.apple.com/podcast/title-of-podcast/id<strong>000000000</strong>'); ?></p>
879
-
880
- <p><?php echo sprintf( __('Click the following link to %s.', 'powerpress'), '<a href="https://buy.itunes.apple.com/WebObjects/MZFinance.woa/wa/publishPodcast" target="_blank">'. __('Publish a Podcast on iTunes', 'powerpress') .'</a>'); ?>
881
- <?php echo __('iTunes will email your Subscription URL to the <em>iTunes Email</em> entered below when your podcast is accepted into the iTunes Directory.', 'powerpress'); ?>
882
- </p>
883
- <p>
884
- <?php echo __('Recommended feed to submit to iTunes: ', 'powerpress'); ?>
885
- <?php
886
-
887
  switch( $FeedAttribs['type'] )
888
  {
889
  case 'ttid':
890
  case 'category': {
891
- echo get_category_feed_link($cat_ID);
892
  }; break;
893
  case 'channel': {
894
- echo get_feed_link($feed_slug);
895
  }; break;
896
  case 'post_type': {
897
- $url = get_post_type_archive_feed_link($FeedAttribs['post_type'], $feed_slug);
898
- echo $url;
899
  }; break;
900
  case 'general':
901
  default: {
902
- echo get_feed_link('podcast');
903
  }
904
  }
905
-
906
  ?>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
907
  </p>
908
  </td>
909
  </tr>
@@ -1297,13 +1293,14 @@ function powerpressadmin_appearance($General=false, $Feed = false)
1297
  $linkoptions = array(0=>__('No, everything is working', 'powerpress'),
1298
  1=>__('Yes, please try to fix', 'powerpress'),
1299
  2=>__('Yes, alternative fix', 'powerpress'),
1300
- 3=>__('Yes, excluding excerpts', 'powerpress') );
 
1301
 
1302
  while( list($value,$desc) = each($linkoptions) )
1303
  echo "\t<option value=\"$value\"". ($General['player_aggressive']==$value?' selected':''). ">$desc</option>\n";
1304
 
1305
  ?>
1306
- </select>
1307
  <p style="margin-top: 5px;">
1308
  <?php echo __('Use this option if you are having problems with the players not appearing on some or all of your pages.', 'powerpress'); ?>
1309
  </p>
@@ -1752,4 +1749,3 @@ function powerpressadmin_edit_artwork($FeedSettings, $General)
1752
  }
1753
  }
1754
 
1755
- ?>
734
  $FeedSettings['googleplay_explicit'] = '';
735
  if( empty($FeedSettings['googleplay_cat']) )
736
  $FeedSettings['googleplay_cat'] = '';
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
737
 
738
+ $gp_feed_url = '';
739
  switch( $FeedAttribs['type'] )
740
  {
741
  case 'ttid':
742
  case 'category': {
743
+ $gp_feed_url = get_category_feed_link($cat_ID);
744
  }; break;
745
  case 'channel': {
746
+ $gp_feed_url = get_feed_link($feed_slug);
747
  }; break;
748
  case 'post_type': {
749
+ $gp_feed_url = get_post_type_archive_feed_link($FeedAttribs['post_type'], $feed_slug);
 
750
  }; break;
751
  case 'general':
752
  default: {
753
+ $gp_feed_url = get_feed_link('podcast');
754
  }
755
  }
756
 
757
+ ?>
758
+ <h3><?php echo __('Google Play Settings', 'powerpress'); ?> <?php echo powerpressadmin_new(); ?></h3>
759
+ <table class="form-table">
760
+ <tr valign="top">
761
+ <th scope="row"><?php echo __('Google Play Listing URL', 'powerpress'); ?></th>
762
+ <td>
763
+ <input type="text" style="width: 80%;" name="Feed[googleplay_url]" value="<?php echo esc_attr($FeedSettings['googleplay_url']); ?>" maxlength="250" />
764
+ <p><?php echo __('Your listing URL will be issued to you from Google Play Music.', 'powerpress'); ?></p>
765
+ <!-- <p><?php echo sprintf(__('e.g. %s', 'powerpress'), 'http://itunes.apple.com/podcast/title-of-podcast/id<strong>000000000</strong>'); ?></p> -->
766
+
767
+ <p><?php echo sprintf( __('Click the following link to %s.', 'powerpress'), '<a href="http://create.blubrry.com/manual/podcast-promotion/publish-podcast-google-play-music-podcast-portal/?podcast-feed='. urlencode($gp_feed_url) .'" target="_blank">'. __('Publish a Podcast on Google Play Music', 'powerpress') .'</a>'); ?>
768
+ </p>
769
+ <p>
770
+ <?php echo __('Recommended feed to submit to Google Play Music: ', 'powerpress'); ?>
771
+ <?php echo esc_html($gp_feed_url); ?>
772
  </p>
773
  </td>
774
  </tr>
866
  $FeedSettings['itunes_url'] = $General['itunes_url'];
867
  }
868
 
869
+ $itunes_feed_url = '';
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
870
  switch( $FeedAttribs['type'] )
871
  {
872
  case 'ttid':
873
  case 'category': {
874
+ $itunes_feed_url = get_category_feed_link($cat_ID);
875
  }; break;
876
  case 'channel': {
877
+ $itunes_feed_url = get_feed_link($feed_slug);
878
  }; break;
879
  case 'post_type': {
880
+ $itunes_feed_url = get_post_type_archive_feed_link($FeedAttribs['post_type'], $feed_slug);
 
881
  }; break;
882
  case 'general':
883
  default: {
884
+ $itunes_feed_url = get_feed_link('podcast');
885
  }
886
  }
887
+
888
  ?>
889
+ <h3><?php echo __('iTunes Listing Information', 'powerpress'); ?></h3>
890
+ <table class="form-table">
891
+ <tr valign="top">
892
+ <th scope="row"><?php echo __('iTunes Subscription URL', 'powerpress'); ?></th>
893
+ <td>
894
+ <input type="text" style="width: 80%;" name="Feed[itunes_url]" value="<?php echo esc_attr($FeedSettings['itunes_url']); ?>" maxlength="250" />
895
+ <p><?php echo sprintf(__('e.g. %s', 'powerpress'), 'http://itunes.apple.com/podcast/title-of-podcast/id<strong>000000000</strong>'); ?></p>
896
+
897
+ <p><?php echo sprintf( __('Click the following link to %s.', 'powerpress'), '<a href="http://create.blubrry.com/manual/podcast-promotion/submit-podcast-to-itunes/?podcast-feed='. urlencode($itunes_feed_url) .'" target="_blank">'. __('Publish a Podcast on iTunes', 'powerpress') .'</a>'); ?>
898
+ <?php echo __('iTunes will email your Subscription URL to the <em>iTunes Email</em> entered below when your podcast is accepted into the iTunes Directory.', 'powerpress'); ?>
899
+ </p>
900
+ <p>
901
+ <?php echo __('Recommended feed to submit to iTunes: ', 'powerpress'); ?>
902
+ <?php echo esc_html($itunes_feed_url); ?>
903
  </p>
904
  </td>
905
  </tr>
1293
  $linkoptions = array(0=>__('No, everything is working', 'powerpress'),
1294
  1=>__('Yes, please try to fix', 'powerpress'),
1295
  2=>__('Yes, alternative fix', 'powerpress'),
1296
+ 3=>__('Yes, excluding excerpts', 'powerpress'),
1297
+ 4=>__('Yes, wp_head check', 'powerpress') );
1298
 
1299
  while( list($value,$desc) = each($linkoptions) )
1300
  echo "\t<option value=\"$value\"". ($General['player_aggressive']==$value?' selected':''). ">$desc</option>\n";
1301
 
1302
  ?>
1303
+ </select> <a href="http://create.blubrry.com/resources/powerpress/powerpress-settings/media-appearance/resolving-plugin-theme-conflict-issues/" target="_blank"><?php echo __('Learn More', 'powerpress'); ?></a>
1304
  <p style="margin-top: 5px;">
1305
  <?php echo __('Use this option if you are having problems with the players not appearing on some or all of your pages.', 'powerpress'); ?>
1306
  </p>
1749
  }
1750
  }
1751
 
 
powerpressadmin-dashboard.php CHANGED
@@ -11,9 +11,35 @@ function powerpress_get_news($feed_url, $limit=10)
11
  include_once(ABSPATH . WPINC . '/feed.php');
12
  $rss = fetch_feed( $feed_url );
13
 
14
- // Bail if feed doesn't work
15
  if ( is_wp_error($rss) )
16
- return false;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
17
 
18
  $rss_items = $rss->get_items( 0, $rss->get_item_quantity( $limit ) );
19
 
@@ -140,6 +166,10 @@ function powerpress_dashboard_stats_content()
140
  $req_url .= (defined('POWERPRESS_BLUBRRY_API_QSA')?'&'. POWERPRESS_BLUBRRY_API_QSA:'');
141
 
142
  $new_content = powerpress_remote_fopen($req_url, $UserPass, array(), 2); // Only give this 2 seconds to return results
 
 
 
 
143
  if( $new_content )
144
  {
145
  update_option('powerpress_stats', array('updated'=>time(), 'content'=>$new_content) );
11
  include_once(ABSPATH . WPINC . '/feed.php');
12
  $rss = fetch_feed( $feed_url );
13
 
14
+ // If feed doesn't work...
15
  if ( is_wp_error($rss) )
16
+ {
17
+ require_once( ABSPATH . WPINC . '/class-feed.php' );
18
+ // Try fetching the feed using CURL directly...
19
+ $content = powerpress_remote_fopen($feed_url, false, array(), 3, false, true);
20
+ if( !$content ) {
21
+ return false;
22
+ }
23
+ // Load the content in a fetch_feed object...
24
+ $rss = new SimplePie();
25
+
26
+ $rss->set_sanitize_class( 'WP_SimplePie_Sanitize_KSES' );
27
+ // We must manually overwrite $feed->sanitize because SimplePie's
28
+ // constructor sets it before we have a chance to set the sanitization class
29
+ $rss->sanitize = new WP_SimplePie_Sanitize_KSES();
30
+
31
+ $rss->set_cache_class( 'WP_Feed_Cache' );
32
+ $rss->set_file_class( 'WP_SimplePie_File' );
33
+ $rss->set_raw_data($content);
34
+ $rss->set_cache_duration( apply_filters( 'wp_feed_cache_transient_lifetime', 12 * HOUR_IN_SECONDS, $feed_url ) );
35
+ do_action_ref_array( 'wp_feed_options', array( &$rss, $feed_url ) );
36
+ $rss->init();
37
+ $rss->set_output_encoding( get_option( 'blog_charset' ) );
38
+ $rss->handle_content_type();
39
+
40
+ if ( $rss->error() )
41
+ return false;
42
+ }
43
 
44
  $rss_items = $rss->get_items( 0, $rss->get_item_quantity( $limit ) );
45
 
166
  $req_url .= (defined('POWERPRESS_BLUBRRY_API_QSA')?'&'. POWERPRESS_BLUBRRY_API_QSA:'');
167
 
168
  $new_content = powerpress_remote_fopen($req_url, $UserPass, array(), 2); // Only give this 2 seconds to return results
169
+ if( !$new_content && $api_url == 'https://api.blubrry.com/' ) { // Lets force cURL and see if that helps...
170
+ $new_content = powerpress_remote_fopen($req_url, $UserPass, array(), 2, false, true); // Only give this 2 seconds to return results
171
+ }
172
+
173
  if( $new_content )
174
  {
175
  update_option('powerpress_stats', array('updated'=>time(), 'content'=>$new_content) );
powerpressadmin-jquery.php CHANGED
@@ -183,6 +183,9 @@ function powerpress_admin_jquery_init()
183
  $req_url = sprintf('%s/media/%s/%s?format=json', rtrim($api_url, '/'), $Settings['blubrry_program_keyword'], $DeleteFile );
184
  $req_url .= (defined('POWERPRESS_BLUBRRY_API_QSA')?'&'. POWERPRESS_BLUBRRY_API_QSA:'');
185
  $json_data = powerpress_remote_fopen($req_url, $Settings['blubrry_auth'], array(), 10, 'DELETE');
 
 
 
186
  if( $json_data != false )
187
  break;
188
  }
@@ -203,6 +206,9 @@ function powerpress_admin_jquery_init()
203
  $req_url = sprintf('%s/media/%s/index.json?quota=true&published=true', rtrim($api_url, '/'), $Settings['blubrry_program_keyword'] );
204
  $req_url .= (defined('POWERPRESS_BLUBRRY_API_QSA')?'&'. POWERPRESS_BLUBRRY_API_QSA:'');
205
  $json_data = powerpress_remote_fopen($req_url, $Settings['blubrry_auth']);
 
 
 
206
  if( $json_data != false )
207
  break;
208
  }
@@ -467,6 +473,9 @@ function DeleteMedia(File)
467
  $req_url = sprintf('%s/service/index.json', rtrim($api_url, '/') );
468
  $req_url .= (defined('POWERPRESS_BLUBRRY_API_QSA')?'?'. POWERPRESS_BLUBRRY_API_QSA:'');
469
  $json_data = powerpress_remote_fopen($req_url, $auth);
 
 
 
470
  if( $json_data != false )
471
  break;
472
  }
@@ -728,6 +737,9 @@ while( list($value,$desc) = each($Programs) )
728
  $req_url = sprintf('%s/media/%s/upload_session.json', rtrim($api_url, '/'), $Settings['blubrry_program_keyword'] );
729
  $req_url .= (defined('POWERPRESS_BLUBRRY_API_QSA')?'?'. POWERPRESS_BLUBRRY_API_QSA:'');
730
  $json_data = powerpress_remote_fopen($req_url, $Settings['blubrry_auth']);
 
 
 
731
  if( $json_data != false )
732
  break;
733
  }
183
  $req_url = sprintf('%s/media/%s/%s?format=json', rtrim($api_url, '/'), $Settings['blubrry_program_keyword'], $DeleteFile );
184
  $req_url .= (defined('POWERPRESS_BLUBRRY_API_QSA')?'&'. POWERPRESS_BLUBRRY_API_QSA:'');
185
  $json_data = powerpress_remote_fopen($req_url, $Settings['blubrry_auth'], array(), 10, 'DELETE');
186
+ if( !$json_data && $api_url == 'https://api.blubrry.com/' ) { // Lets force cURL and see if that helps...
187
+ $json_data = powerpress_remote_fopen($req_url, $Settings['blubrry_auth'], array(), 10, 'DELETE', true); // Only give this 2 seconds to return results
188
+ }
189
  if( $json_data != false )
190
  break;
191
  }
206
  $req_url = sprintf('%s/media/%s/index.json?quota=true&published=true', rtrim($api_url, '/'), $Settings['blubrry_program_keyword'] );
207
  $req_url .= (defined('POWERPRESS_BLUBRRY_API_QSA')?'&'. POWERPRESS_BLUBRRY_API_QSA:'');
208
  $json_data = powerpress_remote_fopen($req_url, $Settings['blubrry_auth']);
209
+ if( !$json_data && $api_url == 'https://api.blubrry.com/' ) { // Lets force cURL and see if that helps...
210
+ $json_data = powerpress_remote_fopen($req_url, $Settings['blubrry_auth'], array(), 15, false, true);
211
+ }
212
  if( $json_data != false )
213
  break;
214
  }
473
  $req_url = sprintf('%s/service/index.json', rtrim($api_url, '/') );
474
  $req_url .= (defined('POWERPRESS_BLUBRRY_API_QSA')?'?'. POWERPRESS_BLUBRRY_API_QSA:'');
475
  $json_data = powerpress_remote_fopen($req_url, $auth);
476
+ if( !$json_data && $api_url == 'https://api.blubrry.com/' ) { // Lets force cURL and see if that helps...
477
+ $json_data = powerpress_remote_fopen($req_url, $auth, array(), 15, false, true);
478
+ }
479
  if( $json_data != false )
480
  break;
481
  }
737
  $req_url = sprintf('%s/media/%s/upload_session.json', rtrim($api_url, '/'), $Settings['blubrry_program_keyword'] );
738
  $req_url .= (defined('POWERPRESS_BLUBRRY_API_QSA')?'?'. POWERPRESS_BLUBRRY_API_QSA:'');
739
  $json_data = powerpress_remote_fopen($req_url, $Settings['blubrry_auth']);
740
+ if( !$json_data && $api_url == 'https://api.blubrry.com/' ) { // Lets force cURL and see if that helps...
741
+ $json_data = powerpress_remote_fopen($req_url, $Settings['blubrry_auth'], array(), 15, false, true);
742
+ }
743
  if( $json_data != false )
744
  break;
745
  }
powerpressadmin-migrate.php CHANGED
@@ -90,6 +90,9 @@ function powepress_admin_migrate_add_urls($urls)
90
  $req_url .= (defined('POWERPRESS_BLUBRRY_API_QSA')?'&'. POWERPRESS_BLUBRRY_API_QSA:'');
91
 
92
  $json_data = powerpress_remote_fopen($req_url, $Settings['blubrry_auth'], $PostArgs );
 
 
 
93
  if( $json_data != false )
94
  break;
95
  }
90
  $req_url .= (defined('POWERPRESS_BLUBRRY_API_QSA')?'&'. POWERPRESS_BLUBRRY_API_QSA:'');
91
 
92
  $json_data = powerpress_remote_fopen($req_url, $Settings['blubrry_auth'], $PostArgs );
93
+ if( !$json_data && $api_url == 'https://api.blubrry.com/' ) { // Lets force cURL and see if that helps...
94
+ $json_data = powerpress_remote_fopen($req_url, $Settings['blubrry_auth'], $PostArgs, 15, false, true);
95
+ }
96
  if( $json_data != false )
97
  break;
98
  }
powerpressadmin-search.php CHANGED
@@ -69,7 +69,7 @@ jQuery(document).ready(function() {
69
 
70
  <p><?php echo __('Enable features to help with podcasting search engine optimization (SEO). The following options can assist your web and podcasting SEO strategies.', 'powerpress'); ?></p>
71
  <p>
72
- <a href="http://create.blubrry.com/resources/powerpress/advanced-tools-and-options/podcasting-seo-settings/"><?php echo __('Learn More', 'powerpress'); ?></a>
73
  </p>
74
 
75
 
@@ -170,5 +170,3 @@ jQuery(document).ready(function() {
170
  <?php
171
  } // End powerpress_admin_search()
172
 
173
-
174
- ?>
69
 
70
  <p><?php echo __('Enable features to help with podcasting search engine optimization (SEO). The following options can assist your web and podcasting SEO strategies.', 'powerpress'); ?></p>
71
  <p>
72
+ <a href="http://create.blubrry.com/resources/powerpress/advanced-tools-and-options/podcasting-seo-settings/" target="_blank"><?php echo __('Learn More', 'powerpress'); ?></a>
73
  </p>
74
 
75
 
170
  <?php
171
  } // End powerpress_admin_search()
172
 
 
 
powerpressadmin.php CHANGED
@@ -705,6 +705,9 @@ function powerpress_admin_init()
705
  $req_url = sprintf('%s/media/%s/coverart.json?url=%s', rtrim($api_url, '/'), $GeneralSettingsTemp['blubrry_program_keyword'], urlencode($TagValues['tag_coverart']) );
706
  $req_url .= (defined('POWERPRESS_BLUBRRY_API_QSA')?'&'. POWERPRESS_BLUBRRY_API_QSA:'');
707
  $json_data = powerpress_remote_fopen($req_url, $GeneralSettingsTemp['blubrry_auth']);
 
 
 
708
  if( $json_data != false )
709
  break;
710
  }
@@ -2774,16 +2777,20 @@ add_action('wp_ajax_powerpress_dashboard_dismiss', 'powerpress_dashboard_dismiss
2774
  function powerpress_create_subscribe_page()
2775
  {
2776
  $template_url = 'http://plugins.svn.wordpress.org/powerpress/assets/subscribe_template/';
2777
- $languages[] = WPLANG;
2778
- if( !preg_match('/en_US/i', WPLANG) )
2779
- {
 
2780
  $languages[] = 'en_US'; // fallback to the en_US version
2781
- }
2782
 
2783
  $template_content = false;
2784
  while( list($index,$lang) = each($languages) )
2785
  {
2786
  $template_content = powerpress_remote_fopen( $template_url . $lang . '.txt' );
 
 
 
2787
  if( !empty($template_content) )
2788
  break;
2789
  }
@@ -3243,12 +3250,12 @@ function powerpress_podpress_stats_exist()
3243
  /*
3244
  // Helper functions:
3245
  */
3246
- function powerpress_remote_fopen($url, $basic_auth = false, $post_args = array(), $timeout = 15, $custom_request = false )
3247
  {
3248
  unset($GLOBALS['g_powerpress_remote_error']);
3249
  unset($GLOBALS['g_powerpress_remote_errorno']);
3250
 
3251
- if( defined('POWERPRESS_CURL') && POWERPRESS_CURL && function_exists( 'curl_init' ) )
3252
  {
3253
  $curl = curl_init();
3254
  curl_setopt($curl, CURLOPT_URL, $url);
@@ -3311,7 +3318,7 @@ function powerpress_remote_fopen($url, $basic_auth = false, $post_args = array()
3311
  {
3312
  $GLOBALS['g_powerpress_remote_error'] = $error_msg;
3313
  $GLOBALS['g_powerpress_remote_errorno'] = $http_code;
3314
- echo 'error: '.$content;
3315
 
3316
  $decoded = json_decode($content);
3317
  if( !empty($decoded) )
@@ -3340,6 +3347,9 @@ function powerpress_remote_fopen($url, $basic_auth = false, $post_args = array()
3340
  return $content;
3341
  }
3342
 
 
 
 
3343
  $options = array();
3344
  $options['timeout'] = $timeout;
3345
  $options['user-agent'] = 'Blubrry PowerPress/'.POWERPRESS_VERSION;
@@ -3492,6 +3502,9 @@ function powerpress_process_hosting($post_ID, $post_title)
3492
  $req_url = sprintf('%s/media/%s/%s?format=json&publish=true', rtrim($api_url, '/'), urlencode($Settings['blubrry_program_keyword']), urlencode($EnclosureURL) );
3493
  $req_url .= (defined('POWERPRESS_BLUBRRY_API_QSA')?'&'. POWERPRESS_BLUBRRY_API_QSA:'');
3494
  $json_data = powerpress_remote_fopen($req_url, $Settings['blubrry_auth'], array(), 60*30); // give this up to 30 minutes, though 3 seocnds to 20 seconds is all one should need.
 
 
 
3495
  if( $json_data != false )
3496
  break;
3497
  }
@@ -3927,6 +3940,9 @@ function powerpress_write_tags($file, $post_title)
3927
  $req_url = sprintf('%s/media/%s/%s?format=json&id3=true', rtrim($api_url, '/'), urlencode($Settings['blubrry_program_keyword']), urlencode($file) );
3928
  $req_url .= (defined('POWERPRESS_BLUBRRY_API_QSA')?'&'. POWERPRESS_BLUBRRY_API_QSA:'');
3929
  $content = powerpress_remote_fopen($req_url, $Settings['blubrry_auth'], $PostArgs );
 
 
 
3930
  if( $content != false )
3931
  break;
3932
  }
@@ -3951,6 +3967,10 @@ function powerpress_get_media_info($file)
3951
  $req_url = sprintf('%s/media/%s/%s?format=json&info=true', rtrim($api_url, '/'), urlencode($Settings['blubrry_program_keyword']), urlencode($file) );
3952
  $req_url .= (defined('POWERPRESS_BLUBRRY_API_QSA')?'&'. POWERPRESS_BLUBRRY_API_QSA:'');
3953
  $content = powerpress_remote_fopen($req_url, $Settings['blubrry_auth']);
 
 
 
 
3954
  if( $content != false )
3955
  break;
3956
  }
705
  $req_url = sprintf('%s/media/%s/coverart.json?url=%s', rtrim($api_url, '/'), $GeneralSettingsTemp['blubrry_program_keyword'], urlencode($TagValues['tag_coverart']) );
706
  $req_url .= (defined('POWERPRESS_BLUBRRY_API_QSA')?'&'. POWERPRESS_BLUBRRY_API_QSA:'');
707
  $json_data = powerpress_remote_fopen($req_url, $GeneralSettingsTemp['blubrry_auth']);
708
+ if( !$template_content && $api_url == 'https://api.blubrry.com/' ) { // Lets force cURL and see if that helps...
709
+ $template_content = powerpress_remote_fopen($req_url, $GeneralSettingsTemp['blubrry_auth'], array(), 15, false, true);
710
+ }
711
  if( $json_data != false )
712
  break;
713
  }
2777
  function powerpress_create_subscribe_page()
2778
  {
2779
  $template_url = 'http://plugins.svn.wordpress.org/powerpress/assets/subscribe_template/';
2780
+ $languages = array();
2781
+ //$languages[] = WPLANG;
2782
+ //if( !preg_match('/en_US/i', WPLANG) )
2783
+ //{
2784
  $languages[] = 'en_US'; // fallback to the en_US version
2785
+ //}
2786
 
2787
  $template_content = false;
2788
  while( list($index,$lang) = each($languages) )
2789
  {
2790
  $template_content = powerpress_remote_fopen( $template_url . $lang . '.txt' );
2791
+ if( !$template_content ) { // Lets force cURL and see if that helps...
2792
+ $template_content = powerpress_remote_fopen($template_url . $lang . '.txt', false, array(), 15, false, true);
2793
+ }
2794
  if( !empty($template_content) )
2795
  break;
2796
  }
3250
  /*
3251
  // Helper functions:
3252
  */
3253
+ function powerpress_remote_fopen($url, $basic_auth = false, $post_args = array(), $timeout = 15, $custom_request = false, $force_curl=false )
3254
  {
3255
  unset($GLOBALS['g_powerpress_remote_error']);
3256
  unset($GLOBALS['g_powerpress_remote_errorno']);
3257
 
3258
+ if( ($force_curl || (defined('POWERPRESS_CURL') && POWERPRESS_CURL) ) && function_exists( 'curl_init' ) )
3259
  {
3260
  $curl = curl_init();
3261
  curl_setopt($curl, CURLOPT_URL, $url);
3318
  {
3319
  $GLOBALS['g_powerpress_remote_error'] = $error_msg;
3320
  $GLOBALS['g_powerpress_remote_errorno'] = $http_code;
3321
+ //echo 'error: '.$content;
3322
 
3323
  $decoded = json_decode($content);
3324
  if( !empty($decoded) )
3347
  return $content;
3348
  }
3349
 
3350
+ if( $force_curl )
3351
+ return false; // Do not continue, we wanted to use cURL
3352
+
3353
  $options = array();
3354
  $options['timeout'] = $timeout;
3355
  $options['user-agent'] = 'Blubrry PowerPress/'.POWERPRESS_VERSION;
3502
  $req_url = sprintf('%s/media/%s/%s?format=json&publish=true', rtrim($api_url, '/'), urlencode($Settings['blubrry_program_keyword']), urlencode($EnclosureURL) );
3503
  $req_url .= (defined('POWERPRESS_BLUBRRY_API_QSA')?'&'. POWERPRESS_BLUBRRY_API_QSA:'');
3504
  $json_data = powerpress_remote_fopen($req_url, $Settings['blubrry_auth'], array(), 60*30); // give this up to 30 minutes, though 3 seocnds to 20 seconds is all one should need.
3505
+ if( !$json_data && $api_url == 'https://api.blubrry.com/' ) { // Lets force cURL and see if that helps...
3506
+ $json_data = powerpress_remote_fopen($req_url, $Settings['blubrry_auth'], array(), 60*30, false, true);
3507
+ }
3508
  if( $json_data != false )
3509
  break;
3510
  }
3940
  $req_url = sprintf('%s/media/%s/%s?format=json&id3=true', rtrim($api_url, '/'), urlencode($Settings['blubrry_program_keyword']), urlencode($file) );
3941
  $req_url .= (defined('POWERPRESS_BLUBRRY_API_QSA')?'&'. POWERPRESS_BLUBRRY_API_QSA:'');
3942
  $content = powerpress_remote_fopen($req_url, $Settings['blubrry_auth'], $PostArgs );
3943
+ if( !$content && $api_url == 'https://api.blubrry.com/' ) { // Lets force cURL and see if that helps...
3944
+ $content = powerpress_remote_fopen($req_url, $Settings['blubrry_auth'], $PostArgs, 15, false, true);
3945
+ }
3946
  if( $content != false )
3947
  break;
3948
  }
3967
  $req_url = sprintf('%s/media/%s/%s?format=json&info=true', rtrim($api_url, '/'), urlencode($Settings['blubrry_program_keyword']), urlencode($file) );
3968
  $req_url .= (defined('POWERPRESS_BLUBRRY_API_QSA')?'&'. POWERPRESS_BLUBRRY_API_QSA:'');
3969
  $content = powerpress_remote_fopen($req_url, $Settings['blubrry_auth']);
3970
+ if( !$content && $api_url == 'https://api.blubrry.com/' ) { // Lets force cURL and see if that helps...
3971
+ $content = powerpress_remote_fopen($req_url, $Settings['blubrry_auth'], array(), 15, false, true);
3972
+ }
3973
+
3974
  if( $content != false )
3975
  break;
3976
  }
readme.txt CHANGED
@@ -1,44 +1,44 @@
1
  === Blubrry PowerPress Podcasting plugin ===
2
  Contributors: amandato, blubrry
3
- Tags: podcasting, podcast, podcaster, itunes, google play music, google play, enclosure, zune, iphone, youtube, viddler, blip.tv, ustream, podcasting, audio, video, rss2, feed, player, media, rss, mp3, music, embed, feedburner, statistics, stats, flv, flash, id3, episodes, blubrry, webm, mp4, m4v, wordpressmu, mu, wordpress mu, multisite, multi site, mediacaster, post, plugin, posts, simple, social, dashboard, TSG, Buzzsprout, MTR, WP-boxCast, CastMyBlog, simple podcasting, seriously simple podcasting, seriously-simple-podcasting, podlove, podcast.de, clammr
4
  Requires at least: 3.6
5
- Tested up to: 4.3.1
6
- Stable tag: 6.2
7
  Donate link: https://www.patreon.com/blubrry?ty=h
8
  License: GPLv2 or later
9
 
10
-
11
- PowerPress brings the essential features for podcasting to WordPress including full iTunes and Google Play support, Web audio/video players and more.
12
 
13
  == Description ==
14
 
15
- Blubrry PowerPress brings the essential features for podcasting to WordPress. Developed by podcasters for podcasters, PowerPress offers full iTunes and Google Play support, Web audio/video media players, exclusive subscribe tools, podcasting SEO features and more.
 
16
 
17
  = Simple Mode =
18
- PowerPress's Simple Mode will walk you through setting up your podcast in 3 easy steps. Overwhelmed at any time, simply switch to Simple Mode to configure only the essential features to podcast.
 
 
 
 
 
 
19
 
20
  = PowerPress Key Features =
21
- - Full iTunes support: Adds iTunes compliant podcast feeds to your WordPress blog.
22
  - Integrated HTML5 Media Players: Audio/video Web players with embed support from sites such as YouTube.
23
  - Subscribe tools: Create subscribe page with our exclusive subscribe shortcode embed and subscribe sidebar widget optimized for responsive websites, high-resolution screens and Apple Retina displays.
24
  - Podcasting SEO: Improve discovery of your podcast on search engines such as Google, and with the iTunes podcast directory.
25
- - Media modifiers: Easily add, modify and remove podcasts from blog posts and pages.
26
- - Migration tools: Quickly migrate from PodPress, Blogger or Movable Type without losing episodes.
27
  - Multi-podcast support: Create separate podcasts by category (Category Podcasting) or by media format (Podcast Channels).
28
  - Post type and taxonomy podcasting: Create podcasts from custom post types and taxonomies.
29
  - *Media Statistics: Get FREE Blubrry Media Statistics from your WordPress dashboard.
30
- - Languages supported: English, Danish, French, Simplified Chinese, Italian, Romanian, Russian, Brazilian Portuguese ([Want to translate PowerPress?](http://create.blubrry.com/resources/powerpress/advanced-tools-and-options/translating-powerpress/))
31
-
32
- *The Blubrry basic statistics service is FREE. Our [Premium Statistics Service](https://secure.blubrry.com/podcast-statistics-premium/), which includes [RawVoice Certified Statistics](http://create.blubrry.com/resources/podcast-media-download-statistics/rawvoice-certified/), U.S. downloads, trending and exporting, is available for $5 month.
33
-
34
- = Become a PowerPress Patron! =
35
- Help support your favorite podcasting plugin via Patreon. [Visit Blubrry's Patreon page](https://www.patreon.com/blubrry?ty=h)
36
 
37
  = Includes Full Google Play Music Support! =
38
  Blubrry PowerPress 6.1+ fully supports Google Play Music podcast directory. Upgrade to PowerPress 6.1 then submit your podcast to [Google Play Music](http://g.co/podcastportal).
39
 
40
  = Includes Full iTunes Support! =
41
- Blubrry PowerPress fully supports iTunes, which set the standard and is required for podcasting. PowerPress comes with the following iTunes specific features:
42
 
43
  * iTunes compliant podcast feeds: The appropriate tags are added to your feeds so your iTunes listing looks great.
44
  * Optimized iTunes summary: Converts your blog-post content to a format suited for viewing in iTunes ([learn more](http://create.blubrry.com/resources/powerpress/powerpress-settings/itunes/)).
@@ -59,6 +59,16 @@ Blubrry PowerPress includes extensive Web player options to display your podcast
59
  * Audio formats supported: mp3, m4a, oga (ogg audio), opus.
60
  * Video formats supported: m4v, mp4, webm, ogv (ogg video).
61
 
 
 
 
 
 
 
 
 
 
 
62
 
63
  = Integrates with Blubrry's Services =
64
  Make your life easier by adding our FREE or paid media hosting and statistics services to streamline your podcast productivity.
@@ -71,44 +81,46 @@ Make your life easier by adding our FREE or paid media hosting and statistics se
71
 
72
  The Blubrry basic statistics service is FREE. Our [Premium Statistics Service](https://secure.blubrry.com/podcast-statistics-premium/), which includes [RawVoice Certified Statistics](http://create.blubrry.com/resources/podcast-media-download-statistics/rawvoice-certified/), U.S. downloads, trending and exporting, is available for $5 month. Blubrry [Media Hosting](https://secure.blubrry.com/podcast-publishing-premium-with-hosting/) packages start at $12.
73
 
74
- = Subscribe Tools Baked In =
75
- A Blubrry PowerPress exclusive, podcasting subscribe tools help you convert Web visitors into podcast subscribers.
76
-
77
- * [Subscribe page](http://create.blubrry.com/resources/powerpress/advanced-tools-and-options/subscribe-page/): Instantly create a subscribe page with simplified instructions on how to subscribe to your podcast using the PowerPress subscribe page shortcode.
78
- * [Subscribe page shortcode](http://create.blubrry.com/resources/powerpress/advanced-tools-and-options/powerpress-subscribe-shortcode/): Add the `[powerpress_subscribe]` shortcode to include a mobile-device optimized subscribe embed in any post or page that includes buttons to subscribe on iTunes, by RSS, BeyondPod for Android, Podcast Republic for Android and an automatically highlighted textbox to easily copy and paste your podcast feed into any subscription application.
79
- * Subscribe sidebar widget: Mobile device optimized sidebar buttons to subscribe on iTunes, by RSS and a "more subscribe options" button linked to your podcast's subscribe page.
80
- * Subscribe links: Subscribe on iTunes, by RSS and a link to your custom subscribe page below every player.
81
- * Retina enabled: Subscribe button images optimized for high resolution displays including Apple Retina displays.
82
- * Responsive: Subscribe tools are designed for any screen and optimized for touch screens by providing custom buttons that are at minimum 48 pixels in height.
83
 
84
  = Advanced Features for those who need more =
85
- Want more? We've got more! Check out some of the advanced features:
86
 
87
  * [Podcasting SEO settings](http://create.blubrry.com/resources/powerpress/advanced-tools-and-options/podcasting-seo-settings/): Utilize the iTunes features that improve the discovery of your podcasts and include the necessary meta data in your blog pages for search engines to discover.
88
  * Embeds: Provide embeds your audience can take with them (just like YouTube embeds)
89
  * Media size and duration detection: Enter your media URL and let the PowerPress do the rest.
90
  * Category Casting: Add podcast support to your WordPress category feeds.
91
  * Custom Podcast Channels: Distribute multiple formats (audio/video) and versions (short/full length).
92
- * *Taxonomy Podcasting: Create podcasts for your custom taxonomy tag names including WordPress Tags. (feature sponsored by [AfterBuzzTV.com](http://afterbuzztv.com/))
93
- * *Post Type Podcasting: Create podcasts for your custom post types.
94
- * FeedBurner Support: Use FeedBurner.com to host your podcast feeds ([we do not recommend FeedBurner for podcasting](http://create.blubrry.com/manual/syndicating-your-podcast-rss-feeds/feedburner-for-podcasting/)).
95
- * **User Role Management: Control which users in your blog can podcast.
96
  * Diagnostics: Check to see if your server is configured to support all of the available features in PowerPress.
97
  * WordPress MultiSite: Blubrry PowerPress is compatible with WordPress MultiSite and can be extended using the [Blubrry PowerPress MultiSite add-on plugin](https://wordpress.org/plugins/powerpress-multisite/).
98
- * ***Supported syndication formats: mp3, m4a, mp4, m4v, webm, ogg, oga, ogv, wma, ra, mp4a, m4v, mp4v, mpg, asf, avi, wmv, flv, swf, mov, divx, 3gp, midi, wav, aa, pdf, torrent, m4b, m4r, epub.
99
 
100
- *Custom Post Types and Taxonomies features require a separate plugin to manage.
101
 
102
- **User Role Management requires a separate plugin to manage WordPress Roles and Capabilities.
 
103
 
104
- ***Apple iTunes only supports mp3, m4a, mp4, m4v, pdf and epub.
105
 
106
- = Migrating from PodPress? =
107
- Switching to PowerPress is seamless. Simply enable PowerPress then disable PodPress and you're done! Visit [Migrating from PodPress to PowerPress](http://create.blubrry.com/resources/powerpress/advanced-tools-and-options/migrating-from-podpress-to-powerpress/) for details.
108
 
109
- PowerPress will continue where plugin your old plugin left off by including your previously created episodes in your feeds and Web pages.
110
 
111
- Note: Advanced settings such as settings for podcast categories will need to be recreated in PowerPress.
 
 
 
 
 
 
 
 
 
 
 
112
 
113
  = Need Help? =
114
  . . . or have some ideas that could improve the plugin?
@@ -122,7 +134,8 @@ Note: Advanced settings such as settings for podcast categories will need to be
122
  We now offer one-on-one consulting via GoToMeeting, Skype or phone.
123
  [Learn more about Blubrry Consulting Services](http://create.blubrry.com/support/podcast-consulting-services/)
124
 
125
- *PowerPress is developed and maintained by [Blubrry](http://www.blubrry.com), a podcasting company and community providing tools and resources for podcasters to measure, monetize, publish and host podcasts. Although we'd like you to become a member of [Blubrry](http://www.blubrry.com/createaccount.php), **no membership is required** to use this free open source podcasting plugin.*
 
126
 
127
  == Frequently Asked Questions ==
128
 
@@ -211,14 +224,27 @@ To install Blubrry PowerPress manually, follow these steps:
211
  = Become a PowerPress Patron! =
212
  Help support your favorite podcasting plugin via Patreon. [Visit Blubrry's Patreon page](https://www.patreon.com/blubrry?ty=h)
213
 
 
 
 
 
 
 
 
 
 
 
 
 
 
214
  = 6.2 =
215
  * Released on 11/16/2015
216
  * Clammr Audio Player option added to PowerPress.
217
- * Added logic to call the do_shortcode fucntion when themes override the audio shortcode.
218
  * Fixed bug in the media redirect url function when switching between sites for a MultiSite. (Thanks Avi for the patch!)
219
  * HTML output will only append a "\n" when in debug mode. This will prevent situation where some plugins convert new lines into `<br>` tags. (Thanks Avi for bringing to our attention)
220
  * Added new define option `POWERPRESS_DO_SHORTCODE`, when set in your wp-config.php the `do_shortcode` is used rather than calling the `wp_audio_shortcode` function.
221
- * Moved the wp_enqueue_style for subscribe widget within the shortcode. Shortcode can now be used outside of `the_content`.
222
 
223
 
224
  = 6.1 =
1
  === Blubrry PowerPress Podcasting plugin ===
2
  Contributors: amandato, blubrry
3
+ Tags: powerpress, podcasting, podcast, podcaster, itunes, google play music, google play, enclosure, professional, apple, apple tv, ipad, iphone, youtube, viddler, ustream, podcasting, audio, video, rss2, feed, player, media, rss, mp3, music, embed, feedburner, statistics, stats, flv, flash, id3, episodes, blubrry, mp4, m4v, wordpressmu, mu, wordpress mu, multisite, multi site, mediacaster, post, plugin, posts, simple, social, dashboard, TSG, Buzzsprout, MTR, WP-boxCast, CastMyBlog, tgs podcasting, simple podcasting, seriously simple podcasting, seriously-simple-podcasting, serious, seriously, ssp, podlove, podcast.de, clammr, clammr radio, audio player, stitcher, show, shows, series, docs, documentation, support, free, add-ons, extensions, addons, libsyn, libsyn-podcasting, podbean, podomatic, spreaker
4
  Requires at least: 3.6
5
+ Tested up to: 4.4
6
+ Stable tag: 6.2.1
7
  Donate link: https://www.patreon.com/blubrry?ty=h
8
  License: GPLv2 or later
9
 
10
+ No. 1 Podcasting plugin for WordPress, with simple & advanced modes, players, subscribe tools, and more! Supports iTunes, Google Play, Stitcher...
 
11
 
12
  == Description ==
13
 
14
+ PowerPress is the No. 1 Podcasting plugin for WordPress. Developed by podcasters for podcasters; features include Simple and Advanced modes, multiple audio/video player options, subscribe to podcast tools, podcast SEO features, and more! Fully supports iTunes, Google Play, Stitcher, and Blubrry Podcasting directories, as well as all podcast applications and clients.
15
+
16
 
17
  = Simple Mode =
18
+ If you are just getting started or feel overwelmed with all the settings and options, switch to Simple mode! PowerPress's Simple Mode will walk you through getting started in 3 easy steps.
19
+
20
+ 1. Setup your Podcast quickly with only the essential settings
21
+ 1. Create your first Episode
22
+ 1. Submit your podcast to iTunes
23
+
24
+ When you're ready you can switch to Advanced mode to tap into all the options professionals would want.
25
 
26
  = PowerPress Key Features =
27
+ - Full iTunes & Google Play support: Adds iTunes compliant podcast feeds to your WordPress site.
28
  - Integrated HTML5 Media Players: Audio/video Web players with embed support from sites such as YouTube.
29
  - Subscribe tools: Create subscribe page with our exclusive subscribe shortcode embed and subscribe sidebar widget optimized for responsive websites, high-resolution screens and Apple Retina displays.
30
  - Podcasting SEO: Improve discovery of your podcast on search engines such as Google, and with the iTunes podcast directory.
31
+ - Migration tools: Quickly migrate from PodPress, TGS Podcasting, Seriously Simple Podcasting, Blogger or Movable Type without losing episodes.
 
32
  - Multi-podcast support: Create separate podcasts by category (Category Podcasting) or by media format (Podcast Channels).
33
  - Post type and taxonomy podcasting: Create podcasts from custom post types and taxonomies.
34
  - *Media Statistics: Get FREE Blubrry Media Statistics from your WordPress dashboard.
35
+ - Multi-languages and locales: See [PowerPress in your language](http://create.blubrry.com/resources/powerpress/powerpress-language/) for details.
 
 
 
 
 
36
 
37
  = Includes Full Google Play Music Support! =
38
  Blubrry PowerPress 6.1+ fully supports Google Play Music podcast directory. Upgrade to PowerPress 6.1 then submit your podcast to [Google Play Music](http://g.co/podcastportal).
39
 
40
  = Includes Full iTunes Support! =
41
+ Blubrry PowerPress fully supports iTunes, which is required for podcasting. PowerPress comes with the following iTunes specific features:
42
 
43
  * iTunes compliant podcast feeds: The appropriate tags are added to your feeds so your iTunes listing looks great.
44
  * Optimized iTunes summary: Converts your blog-post content to a format suited for viewing in iTunes ([learn more](http://create.blubrry.com/resources/powerpress/powerpress-settings/itunes/)).
59
  * Audio formats supported: mp3, m4a, oga (ogg audio), opus.
60
  * Video formats supported: m4v, mp4, webm, ogv (ogg video).
61
 
62
+ = Integrated Subscribe Tools =
63
+ A Blubrry PowerPress exclusive, podcast subscribe tools help you convert Web visitors into podcast subscribers. Subscribe options include:
64
+
65
+ * [Subscribe page](http://create.blubrry.com/resources/powerpress/advanced-tools-and-options/subscribe-page/): Instantly create a subscribe page with simplified instructions on how to subscribe to your podcast using the PowerPress subscribe page shortcode.
66
+ * [Subscribe page shortcode](http://create.blubrry.com/resources/powerpress/advanced-tools-and-options/powerpress-subscribe-shortcode/): Add the `[powerpress_subscribe]` shortcode to include a mobile-device optimized subscribe embed in any post or page that includes buttons to subscribe on iTunes, [Subscribe on Android](http://www.subscribeonandroid.com), [Subscribe by Email](http://www.subscribebyemail.com), via RSS, and an special textbox to easily copy and paste your podcast feed into any podcast application.
67
+ * Subscribe sidebar widget: Mobile device optimized sidebar buttons to subscribe on iTunes, [Subscribe on Android](http://www.subscribeonandroid.com), subscribe by RSS, and a "more subscribe options" button linked to your podcast's subscribe page.
68
+ * Subscribe links: Subscribe on iTunes, [Subscribe on Android](http://www.subscribeonandroid.com), subscribe by RSS and a link to your custom subscribe page below every player.
69
+ * Retina enabled: Subscribe button images optimized for high resolution displays including Apple Retina displays.
70
+ * Responsive: Subscribe tools are designed for any screen and optimized for touch screens by providing custom buttons that are at minimum 48 pixels in height.
71
+
72
 
73
  = Integrates with Blubrry's Services =
74
  Make your life easier by adding our FREE or paid media hosting and statistics services to streamline your podcast productivity.
81
 
82
  The Blubrry basic statistics service is FREE. Our [Premium Statistics Service](https://secure.blubrry.com/podcast-statistics-premium/), which includes [RawVoice Certified Statistics](http://create.blubrry.com/resources/podcast-media-download-statistics/rawvoice-certified/), U.S. downloads, trending and exporting, is available for $5 month. Blubrry [Media Hosting](https://secure.blubrry.com/podcast-publishing-premium-with-hosting/) packages start at $12.
83
 
 
 
 
 
 
 
 
 
 
84
 
85
  = Advanced Features for those who need more =
86
+ Want more? We've got more! With a simple click you can enable advanced features and options. Check out some of the advanced features:
87
 
88
  * [Podcasting SEO settings](http://create.blubrry.com/resources/powerpress/advanced-tools-and-options/podcasting-seo-settings/): Utilize the iTunes features that improve the discovery of your podcasts and include the necessary meta data in your blog pages for search engines to discover.
89
  * Embeds: Provide embeds your audience can take with them (just like YouTube embeds)
90
  * Media size and duration detection: Enter your media URL and let the PowerPress do the rest.
91
  * Category Casting: Add podcast support to your WordPress category feeds.
92
  * Custom Podcast Channels: Distribute multiple formats (audio/video) and versions (short/full length).
93
+ * Taxonomy Podcasting: Create podcasts for your custom taxonomy tag names including WordPress Tags. (feature sponsored by [AfterBuzzTV.com](http://afterbuzztv.com/))
94
+ * Post Type Podcasting: Create podcasts for your custom post types.
95
+ * Premium Podcasting (Requires a membership plugin and/or roles and capabilities plugin to manage)
96
+ * User Role Management: Control which users in your blog can podcast. (Requires a roles and capabilities plugin to manage)
97
  * Diagnostics: Check to see if your server is configured to support all of the available features in PowerPress.
98
  * WordPress MultiSite: Blubrry PowerPress is compatible with WordPress MultiSite and can be extended using the [Blubrry PowerPress MultiSite add-on plugin](https://wordpress.org/plugins/powerpress-multisite/).
99
+ * *Supported syndication formats: mp3, m4a, mp4, m4v, webm, ogg, oga, ogv, wma, ra, mp4a, m4v, mp4v, mpg, asf, avi, wmv, flv, swf, mov, divx, 3gp, midi, wav, aa, pdf, torrent, m4b, m4r, epub.
100
 
101
+ *Apple iTunes only supports mp3, m4a, mp4, m4v, pdf and epub.
102
 
103
+ = Migrating from PodPress or other podcasting plugin? =
104
+ Switching to from PodPress to PowerPress is seamless. Simply enable PowerPress then disable PodPress and you're done! PowerPress will continue where plugin your old plugin left off by including your previously created episodes in your feeds and Web pages.
105
 
106
+ Please see detailed instructions for migrating from [PodPress](http://create.blubrry.com/resources/powerpress/advanced-tools-and-options/migrating-from-podpress-to-powerpress/), [TGS Podcasting Plugin](http://create.blubrry.com/resources/powerpress/advanced-tools-and-options/migrating-from-tgs-podcasting-plugin/) and [Seriously Simple Podcasting](http://create.blubrry.com/resources/powerpress/advanced-tools-and-options/migrating-from-seriously-simple-podcasting-plugin/).
107
 
108
+ Note: Advanced settings such as settings for podcast categories will need to be recreated in PowerPress.
 
109
 
110
+ = PowerPress in your Language =
111
 
112
+ [PowerPress is available in a number of languages](http://create.blubrry.com/resources/powerpress/powerpress-language/). Starting with PowerPress 7.0, translations will be managed through [translate.wordpress.org](https://translate.wordpress.org/projects/wp-plugins/powerpress/) making translations easier to setup and update.
113
+
114
+ = PowerPress is looking for translators! =
115
+
116
+ [Anyone can help translate PowerPress!](http://create.blubrry.com/resources/powerpress/powerpress-language/translate-powerpress/) If you are intersted in translating PowerPress, please [contact us](https://www.blubrry.com/contact/#translate).
117
+
118
+ **Translators will receive the following from us as a thank you for contributing:**
119
+ * Free [Blubrry Professional podcast statistics](http://create.blubrry.com/resources/podcast-media-download-statistics/) account for your podcast.
120
+ * Name or nickname in the PowerPress readme.txt and in the [PowerPress WordPress.org Translators list](https://wordpress.org/plugins/powerpress/other_notes/) (will give you credit for your contribution)
121
+ * Website URL (optional, we will link to your website)
122
+
123
+ Interested translators please [contact us](https://www.blubrry.com/contact/#translate), include your WordPress.org account name, blubrry account login (if you have one), your name, desired URL, and the language locale(s) you would like to translate.
124
 
125
  = Need Help? =
126
  . . . or have some ideas that could improve the plugin?
134
  We now offer one-on-one consulting via GoToMeeting, Skype or phone.
135
  [Learn more about Blubrry Consulting Services](http://create.blubrry.com/support/podcast-consulting-services/)
136
 
137
+ *PowerPress is developed and maintained by [Blubrry](http://www.blubrry.com), a podcasting company and community owned and operated by podcasters providing tools and resources for podcasters to measure, monetize, publish and host podcasts. Although we'd like you to become a member of [Blubrry](http://www.blubrry.com/createaccount.php), **no membership is required** to use this free open source podcasting plugin.*
138
+
139
 
140
  == Frequently Asked Questions ==
141
 
224
  = Become a PowerPress Patron! =
225
  Help support your favorite podcasting plugin via Patreon. [Visit Blubrry's Patreon page](https://www.patreon.com/blubrry?ty=h)
226
 
227
+ = 6.2.1 =
228
+ * Released on 11/22/2015
229
+ * Removed logic added in last updated to call the do_shortcode function. We originally added this code to solve a theme conflict, it appears to have cause problems for others so we're reverting back.
230
+ If your theme overrides the audio player shortcode (player will only appear correctly when calling `do_shortcode('[audio]')`), then you must include the following define in your wp-config.php: `POWERPRESS_DO_SHORTCODE`.
231
+ * Added new `itunes_subtitle="true"` attribute for `powerpress_subscribe` shortcode, will put your itunes subtitle below your podcast title in the subscribe widget. (Thanks Robert for the feature suggestion!)
232
+ * Added new `subtitle="your custom subtitle"` attribute for `powerpress_subscribe` shortcode, you can now customize a subtitle that goes below your title. (Again thanks Robert!)
233
+ * Added logic to use cURL library when native HTTP library in WordPress fails. (Thanks Zuke for helping us debug the problem!)
234
+ * Added new logic to check for `the_content`/`the_excerpt` used in the http head. Should fix issue for folks using Yoast's SEO plugin with Facebook social enabled.
235
+ * Added code for the Clammr audio player to work in the "play in new window".
236
+ * Added new "Having Issues?" option, "wp_head check", will not add player and links if within the wp_head function call.
237
+ * Updated links for submitting to iTunes and Google Play Music Podcast Portal.
238
+
239
+
240
  = 6.2 =
241
  * Released on 11/16/2015
242
  * Clammr Audio Player option added to PowerPress.
243
+ * Added logic to call the do_shortcode function when themes override the audio shortcode.
244
  * Fixed bug in the media redirect url function when switching between sites for a MultiSite. (Thanks Avi for the patch!)
245
  * HTML output will only append a "\n" when in debug mode. This will prevent situation where some plugins convert new lines into `<br>` tags. (Thanks Avi for bringing to our attention)
246
  * Added new define option `POWERPRESS_DO_SHORTCODE`, when set in your wp-config.php the `do_shortcode` is used rather than calling the `wp_audio_shortcode` function.
247
+ * Moved the `wp_enqueue_style` for subscribe widget within the shortcode. Shortcode can now be used outside of `the_content`. (Thanks Robert for letting us know about the bug!)
248
 
249
 
250
  = 6.1 =