PowerPress Podcasting plugin by Blubrry - Version 9.1.3

Version Description

  • Released on 07/27/2022
  • Updated wording for 'Stats Prefix'
  • Allow some HTML tags in descriptions in the PowerPress Network section
Download this release

Release Info

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

Code changes from version 9.1.2 to 9.1.3

powerpress.php CHANGED
@@ -3,7 +3,7 @@
3
  Plugin Name: Blubrry PowerPress
4
  Plugin URI: http://create.blubrry.com/resources/powerpress/
5
  Description: <a href="https://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 Apple Podcasts (previously iTunes), Google Podcasts, Spotify, Stitcher, and Blubrry Podcasting directories, as well as all podcast applications and clients.
6
- Version: 9.1.2
7
  Author: Blubrry
8
  Author URI: https://blubrry.com/
9
  Requires at least: 3.6
@@ -35,7 +35,7 @@ if( !function_exists('add_action') ) {
35
  }
36
 
37
  // WP_PLUGIN_DIR (REMEMBER TO USE THIS DEFINE IF NEEDED)
38
- define('POWERPRESS_VERSION', '9.1.2' );
39
 
40
  // Translation support:
41
  if ( !defined('POWERPRESS_ABSPATH') )
3
  Plugin Name: Blubrry PowerPress
4
  Plugin URI: http://create.blubrry.com/resources/powerpress/
5
  Description: <a href="https://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 Apple Podcasts (previously iTunes), Google Podcasts, Spotify, Stitcher, and Blubrry Podcasting directories, as well as all podcast applications and clients.
6
+ Version: 9.1.3
7
  Author: Blubrry
8
  Author URI: https://blubrry.com/
9
  Requires at least: 3.6
35
  }
36
 
37
  // WP_PLUGIN_DIR (REMEMBER TO USE THIS DEFINE IF NEEDED)
38
+ define('POWERPRESS_VERSION', '9.1.3' );
39
 
40
  // Translation support:
41
  if ( !defined('POWERPRESS_ABSPATH') )
powerpressadmin-basic.php CHANGED
@@ -50,7 +50,7 @@ function CheckRedirect(obj)
50
  if( obj.value.indexOf('rawvoice') == -1 && obj.value.indexOf('techpodcasts') == -1 &&
51
  obj.value.indexOf('blubrry') == -1 && obj.value.indexOf('podtrac') == -1 )
52
  {
53
- if( !confirm('<?php echo __('The redirect entered is not recongized as a supported statistics redirect service.', 'powerpress'); ?>\n\n<?php echo __('Are you sure you wish to continue with this redirect url?', 'powerpress'); ?>') )
54
  {
55
  obj.value = '';
56
  return false;
@@ -734,7 +734,7 @@ function powerpressadmin_edit_media_statistics($General)
734
  </div>
735
  </div>
736
  <div>
737
- <h4><?php echo __('REDIRECT URL', 'powerpress'); ?></h4>
738
  <p class="pp-settings-text-no-margin">
739
  <?php echo __('Enter your Redirect URL issued by your media statistics service provider below.', 'powerpress'); ?>
740
  </p>
@@ -760,7 +760,7 @@ function powerpressadmin_edit_media_statistics($General)
760
  <table class="form-table">
761
  <tr valign="top">
762
  <th scope="row">
763
- <?php echo __('Redirect URL 1', 'powerpress'); ?>
764
  </th>
765
  <td>
766
  <input type="text" class="pp-settings-text-input" name="<?php if( stripos($General['redirect1'], $StatsIntegrationURL) !== false ) echo 'NULL[redirect1]'; else echo 'General[redirect1]'; ?>" value="<?php echo esc_attr($General['redirect1']); ?>" onChange="return CheckRedirect(this);" maxlength="255" <?php if( stripos($General['redirect1'], $StatsIntegrationURL) !== false ) { echo ' readOnly="readOnly"'; $StatsIntegrationURL = false; } ?> />
@@ -779,7 +779,7 @@ function powerpressadmin_edit_media_statistics($General)
779
  <table class="form-table">
780
  <tr valign="top">
781
  <th scope="row">
782
- <?php echo __('Redirect URL 2', 'powerpress'); ?>
783
  </th>
784
  <td>
785
  <input type="text" class="pp-settings-text-input" name="<?php if( stripos($General['redirect2'], $StatsIntegrationURL) !== false ) echo 'NULL[redirect2]'; else echo 'General[redirect2]'; ?>" value="<?php echo esc_attr($General['redirect2']); ?>" onblur="return CheckRedirect(this);" maxlength="255" <?php if( stripos($General['redirect2'], $StatsIntegrationURL) !== false ) { echo ' readOnly="readOnly"'; $StatsIntegrationURL = false; } ?> />
@@ -797,7 +797,7 @@ function powerpressadmin_edit_media_statistics($General)
797
  <table class="form-table">
798
  <tr valign="top">
799
  <th scope="row">
800
- <?php echo __('Redirect URL 3', 'powerpress'); ?>
801
  </th>
802
  <td>
803
  <input type="text" class="pp-settings-text-input" name="<?php if( stripos($General['redirect3'], $StatsIntegrationURL) !== false ) echo 'NULL[redirect3]'; else echo 'General[redirect3]'; ?>" value="<?php echo esc_attr($General['redirect3']); ?>" onblur="return CheckRedirect(this);" maxlength="255" <?php if( stripos($General['redirect3'], $StatsIntegrationURL) !== false ) echo ' readOnly="readOnly"'; ?> />
50
  if( obj.value.indexOf('rawvoice') == -1 && obj.value.indexOf('techpodcasts') == -1 &&
51
  obj.value.indexOf('blubrry') == -1 && obj.value.indexOf('podtrac') == -1 )
52
  {
53
+ if( !confirm('<?php echo __('The redirect entered is not recongized as a supported statistics redirect service.', 'powerpress'); ?>\n\n<?php echo __('Are you sure you wish to continue with this stats prefix?', 'powerpress'); ?>') )
54
  {
55
  obj.value = '';
56
  return false;
734
  </div>
735
  </div>
736
  <div>
737
+ <h4><?php echo __('STATS PREFIX', 'powerpress'); ?></h4>
738
  <p class="pp-settings-text-no-margin">
739
  <?php echo __('Enter your Redirect URL issued by your media statistics service provider below.', 'powerpress'); ?>
740
  </p>
760
  <table class="form-table">
761
  <tr valign="top">
762
  <th scope="row">
763
+ <?php echo __('Stats Prefix 1', 'powerpress'); ?>
764
  </th>
765
  <td>
766
  <input type="text" class="pp-settings-text-input" name="<?php if( stripos($General['redirect1'], $StatsIntegrationURL) !== false ) echo 'NULL[redirect1]'; else echo 'General[redirect1]'; ?>" value="<?php echo esc_attr($General['redirect1']); ?>" onChange="return CheckRedirect(this);" maxlength="255" <?php if( stripos($General['redirect1'], $StatsIntegrationURL) !== false ) { echo ' readOnly="readOnly"'; $StatsIntegrationURL = false; } ?> />
779
  <table class="form-table">
780
  <tr valign="top">
781
  <th scope="row">
782
+ <?php echo __('Stats Prefix 2', 'powerpress'); ?>
783
  </th>
784
  <td>
785
  <input type="text" class="pp-settings-text-input" name="<?php if( stripos($General['redirect2'], $StatsIntegrationURL) !== false ) echo 'NULL[redirect2]'; else echo 'General[redirect2]'; ?>" value="<?php echo esc_attr($General['redirect2']); ?>" onblur="return CheckRedirect(this);" maxlength="255" <?php if( stripos($General['redirect2'], $StatsIntegrationURL) !== false ) { echo ' readOnly="readOnly"'; $StatsIntegrationURL = false; } ?> />
797
  <table class="form-table">
798
  <tr valign="top">
799
  <th scope="row">
800
+ <?php echo __('Stats Prefix 3', 'powerpress'); ?>
801
  </th>
802
  <td>
803
  <input type="text" class="pp-settings-text-input" name="<?php if( stripos($General['redirect3'], $StatsIntegrationURL) !== false ) echo 'NULL[redirect3]'; else echo 'General[redirect3]'; ?>" value="<?php echo esc_attr($General['redirect3']); ?>" onblur="return CheckRedirect(this);" maxlength="255" <?php if( stripos($General['redirect3'], $StatsIntegrationURL) !== false ) echo ' readOnly="readOnly"'; ?> />
readme.txt CHANGED
@@ -4,7 +4,7 @@ Tags: podcasting, podcast, podcaster, powerpress, itunes, apple, apple podcasts,
4
  Requires at least: 3.6
5
  Requires PHP: 5.2
6
  Tested up to: 6.0
7
- Stable tag: 9.1.2
8
  Donate link: https://create.blubrry.com/resources/podcast-media-hosting/
9
  License: GPLv2 or later
10
 
@@ -16,7 +16,7 @@ No. 1 Podcasting plugin for WordPress.
16
 
17
  [youtube https://www.youtube.com/watch?v=xdoc0VaAZtU]
18
 
19
- Publish and manage your podcast right from your WordPress website. Developed by podcasters for podcasters (Blubrry Podcasting), PowerPress features options supported by the top podcasting apps and directories, including Apple Podcasts, Google Podcasts, Spotify, Amazon Music and more. Best of all, it integrates with Blubrry’s hosting and statistics, providing convenient features such as easy uploads available only to Blubrry customers. Don’t worry though, we work with any hosting provider.
20
 
21
  = PowerPress Key Features =
22
  - Integrated Players: PowerPress includes audio and video players with embed support from sites like YouTube.
@@ -186,6 +186,11 @@ If you are a fan of PowerPress, we would greatly appreciate it if you could take
186
 
187
  == Changelog ==
188
 
 
 
 
 
 
189
  = 9.1.2 =
190
  * Released on 07/18/2022
191
  * Small bugfixes for podcast publishing
4
  Requires at least: 3.6
5
  Requires PHP: 5.2
6
  Tested up to: 6.0
7
+ Stable tag: 9.1.3
8
  Donate link: https://create.blubrry.com/resources/podcast-media-hosting/
9
  License: GPLv2 or later
10
 
16
 
17
  [youtube https://www.youtube.com/watch?v=xdoc0VaAZtU]
18
 
19
+ PowerPress Podcasting Plugin is to Publish and manage your podcast directly from your WordPress website, building your brand on your website. Developed by podcasters for podcasters (Blubrry Podcasting), the PowerPress podcast plugin works with all podcasting apps and platforms, including Apple Podcasts, Google Podcasts, Spotify, Amazon Music, Etc. Best of all, it integrates with Blubrry’s podcast hosting and statistics, providing convenient features such as easy upload directly within your dashboard. The plugin works with any podcast host.
20
 
21
  = PowerPress Key Features =
22
  - Integrated Players: PowerPress includes audio and video players with embed support from sites like YouTube.
186
 
187
  == Changelog ==
188
 
189
+ = 9.1.3 =
190
+ * Released on 07/27/2022
191
+ * Updated wording for 'Stats Prefix'
192
+ * Allow some HTML tags in descriptions in the PowerPress Network section
193
+
194
  = 9.1.2 =
195
  * Released on 07/18/2022
196
  * Small bugfixes for podcast publishing
shortcodes/Program.php CHANGED
@@ -84,6 +84,13 @@ class PowerPressNetworkProgram extends PowerPressNetworkShortCode
84
  $props['subscribe_pandora'] = isset($results['program_info']['subscribe_pandora']) ? $results['program_info']['subscribe_pandora'] : false;
85
  $props['subscribe_radio_com'] = isset($results['program_info']['subscribe_radio_com']) ? $results['program_info']['subscribe_radio_com'] : false;
86
  $props['subscribe_spotify'] = isset($results['program_info']['subscribe_spotify']) ? $results['program_info']['subscribe_spotify'] : false;
 
 
 
 
 
 
 
87
  return PowerPressNetwork::getHTML('program-result.php', $props, null, null);
88
  } else {
89
  return PowerPressNetwork::getHTML('invalid-network.php', $props, null, null);
84
  $props['subscribe_pandora'] = isset($results['program_info']['subscribe_pandora']) ? $results['program_info']['subscribe_pandora'] : false;
85
  $props['subscribe_radio_com'] = isset($results['program_info']['subscribe_radio_com']) ? $results['program_info']['subscribe_radio_com'] : false;
86
  $props['subscribe_spotify'] = isset($results['program_info']['subscribe_spotify']) ? $results['program_info']['subscribe_spotify'] : false;
87
+ $props['subscribe_blubrry'] = isset($results['program_info']['subscribe_blubrry']) ? $results['program_info']['subscribe_blubrry'] : false;
88
+ $props['subscribe_podchaser'] = isset($results['program_info']['subscribe_podchaser']) ? $results['program_info']['subscribe_podchaser'] : false;
89
+ $props['subscribe_jiosaavn'] = isset($results['program_info']['subscribe_jiosaavn']) ? $results['program_info']['subscribe_jiosaavn'] : false;
90
+ $props['subscribe_gaana'] = isset($results['program_info']['subscribe_gaana']) ? $results['program_info']['subscribe_gaana'] : false;
91
+ $props['subscribe_pcindex'] = isset($results['program_info']['subscribe_pcindex']) ? $results['program_info']['subscribe_pcindex'] : false;
92
+ $props['subscribe_amazon_music'] = isset($results['program_info']['subscribe_amazon_music']) ? $results['program_info']['subscribe_amazon_music'] : false;
93
+ $props['subscribe_anghami'] = isset($results['program_info']['subscribe_anghami']) ? $results['program_info']['subscribe_anghami'] : false;
94
  return PowerPressNetwork::getHTML('program-result.php', $props, null, null);
95
  } else {
96
  return PowerPressNetwork::getHTML('invalid-network.php', $props, null, null);
shortcodes/views/program-result.php CHANGED
@@ -3,11 +3,13 @@
3
  <link href="<?php echo powerpress_get_root_url(). "css/subscribe-widget.css";?>" rel="stylesheet">
4
  <link href="https://fonts.googleapis.com/css?family=Montserrat&display=swap" rel="stylesheet">
5
  <meta http-equiv="Content-Type" content="text/html" charset="UTF-8"/>
6
- <?php if($props['style'] == 'older-full') {?>
 
 
7
  <div class="ppn-container" id="ppn-program">
8
  <div class="ppn-header" id="ppn-header">
9
  <img alt="<?php echo esc_html(($props['program_title'])) ?>" src="<?php echo esc_url(($props['artwork_url']['300'])) ?>">
10
- <p><?php echo esc_html(($props['program_desc'])) ?></p>
11
  </div>
12
  <br>
13
  <?php for ($i = 0; ($i < $props['limit'] && $i < count($props['episodes'])); $i++) {
@@ -21,7 +23,7 @@
21
  <h3><?php echo esc_html(($props['episodes'][$i]['podcast_title'])); ?></h3>
22
  </div>
23
  <div>
24
- <p><?php echo esc_html(($props['episodes'][$i]['podcast_desc'])); ?></p>
25
  </div>
26
  <div>
27
  <i><?php echo date('F d, Y', $props['episodes'][$i]['podcast_post_date']); ?></i>
@@ -49,7 +51,7 @@
49
  <p class="ppn-episode-date"><?php echo date('F d, Y', $episode['podcast_post_date']);?></p>
50
  </div>
51
  <?php echo $player;?>
52
- <p class="ppn-episode-description"><?php echo esc_html(($episode['podcast_desc']))?></p>
53
  <a class="ppn-download-link" href="<?php echo esc_url(($episode['media_url'])); ?>">
54
  <div>
55
  <div class="ppn-download-arrow"></div>Download
@@ -64,7 +66,7 @@
64
  <?php }elseif($props['style'] == 'description') { ?>
65
  <div class="ppn-container" id="ppn-program">
66
  <div class="ppn-header" id="ppn-header">
67
- <p><?php echo esc_html(($props['program_desc'])) ?></p>
68
  </div>
69
  </div>
70
  <?php } elseif($props['style'] == 'full') {
@@ -74,7 +76,7 @@
74
  <span class="ppn-program-artwork-cell"><img class="ppn-program-artwork" src="<?php echo esc_url(($props['artwork_url']['300']));?>"></span>
75
  </div>
76
  <div class="ppn-program-info-cell" bp="8@lg 8@md 12@sm">
77
- <p class="ppn-program-description"><?php echo esc_html(($props['program_desc']));?></p>
78
  <br />
79
  <b class="ppn-program-talent-name">By <?php echo esc_html(($props['talent_name'])); ?></b>
80
  <p class="ppn-program-url word-break"><a href="<?php echo esc_url(($props['program_url']));?>"><?php echo esc_url(($props['program_url']));?></a></p>
@@ -133,7 +135,7 @@
133
  <p class="ppn-episode-date"><?php echo date('F d, Y', $episode['podcast_post_date']);?></p>
134
  </div>
135
  <?php echo $player;?>
136
- <p class="ppn-episode-description word-break"><?php echo htmlspecialchars(($episode['podcast_desc']))?></p>
137
  <a class="ppn-download-link word-break" href="<?php echo esc_url(($episode['media_url'])); ?>">
138
  <div>
139
  <div class="ppn-download-arrow"></div>Download
3
  <link href="<?php echo powerpress_get_root_url(). "css/subscribe-widget.css";?>" rel="stylesheet">
4
  <link href="https://fonts.googleapis.com/css?family=Montserrat&display=swap" rel="stylesheet">
5
  <meta http-equiv="Content-Type" content="text/html" charset="UTF-8"/>
6
+ <?php
7
+ $allowed_desc_tags = "<p><a><h1><h2><h3><h4><h5><h6>";
8
+ if($props['style'] == 'older-full') {?>
9
  <div class="ppn-container" id="ppn-program">
10
  <div class="ppn-header" id="ppn-header">
11
  <img alt="<?php echo esc_html(($props['program_title'])) ?>" src="<?php echo esc_url(($props['artwork_url']['300'])) ?>">
12
+ <p><?php echo @strip_tags(($props['program_desc']), $allowed_desc_tags) ?></p>
13
  </div>
14
  <br>
15
  <?php for ($i = 0; ($i < $props['limit'] && $i < count($props['episodes'])); $i++) {
23
  <h3><?php echo esc_html(($props['episodes'][$i]['podcast_title'])); ?></h3>
24
  </div>
25
  <div>
26
+ <p><?php echo @strip_tags(($props['episodes'][$i]['podcast_desc']), $allowed_desc_tags); ?></p>
27
  </div>
28
  <div>
29
  <i><?php echo date('F d, Y', $props['episodes'][$i]['podcast_post_date']); ?></i>
51
  <p class="ppn-episode-date"><?php echo date('F d, Y', $episode['podcast_post_date']);?></p>
52
  </div>
53
  <?php echo $player;?>
54
+ <p class="ppn-episode-description"><?php echo @strip_tags(($episode['podcast_desc']), $allowed_desc_tags)?></p>
55
  <a class="ppn-download-link" href="<?php echo esc_url(($episode['media_url'])); ?>">
56
  <div>
57
  <div class="ppn-download-arrow"></div>Download
66
  <?php }elseif($props['style'] == 'description') { ?>
67
  <div class="ppn-container" id="ppn-program">
68
  <div class="ppn-header" id="ppn-header">
69
+ <p><?php echo @strip_tags(($props['program_desc']), $allowed_desc_tags) ?></p>
70
  </div>
71
  </div>
72
  <?php } elseif($props['style'] == 'full') {
76
  <span class="ppn-program-artwork-cell"><img class="ppn-program-artwork" src="<?php echo esc_url(($props['artwork_url']['300']));?>"></span>
77
  </div>
78
  <div class="ppn-program-info-cell" bp="8@lg 8@md 12@sm">
79
+ <p class="ppn-program-description"><?php echo @strip_tags(($props['program_desc']), $allowed_desc_tags);?></p>
80
  <br />
81
  <b class="ppn-program-talent-name">By <?php echo esc_html(($props['talent_name'])); ?></b>
82
  <p class="ppn-program-url word-break"><a href="<?php echo esc_url(($props['program_url']));?>"><?php echo esc_url(($props['program_url']));?></a></p>
135
  <p class="ppn-episode-date"><?php echo date('F d, Y', $episode['podcast_post_date']);?></p>
136
  </div>
137
  <?php echo $player;?>
138
+ <p class="ppn-episode-description word-break"><?php echo @strip_tags(($episode['podcast_desc']), $allowed_desc_tags)?></p>
139
  <a class="ppn-download-link word-break" href="<?php echo esc_url(($episode['media_url'])); ?>">
140
  <div>
141
  <div class="ppn-download-arrow"></div>Download
views/settings_tab_other.php CHANGED
@@ -19,14 +19,14 @@
19
 
20
 
21
 
22
- <h4><?php echo __('REDIRECT URL', 'powerpress'); ?></h4>
23
  <p class="pp-settings-text-no-margin">
24
  <?php echo __('Enter your Redirect URL issued by your media statistics service provider below.', 'powerpress'); ?>
25
 
26
  <?php if( $FeedAttribs['type'] == 'category' ) { ?>
27
  <?php echo __('When specified, this will be the only media statistics redirect applied to this category. Please enable Strict Category Podcasting to apply statistics redirect on non category pages.', 'powerpress'); ?>
28
  <?php } else if( $FeedAttribs['type'] == 'ttid' ) { ?>
29
- <?php echo __('Note: Media Redirect URL is applied to this podcast feed only. The redirect will NOT apply to pages.', 'powerpress'); ?>
30
  <?php } else if( $FeedAttribs['type'] == 'channel' ) { ?>
31
  <?php echo __('When specified, this will be the only media statistics redirect applied to this podcast channel.', 'powerpress'); ?>
32
  <?php } else if( $FeedAttribs['type'] == 'post_type' ) { ?>
19
 
20
 
21
 
22
+ <h4><?php echo __('STATS PREFIX', 'powerpress'); ?></h4>
23
  <p class="pp-settings-text-no-margin">
24
  <?php echo __('Enter your Redirect URL issued by your media statistics service provider below.', 'powerpress'); ?>
25
 
26
  <?php if( $FeedAttribs['type'] == 'category' ) { ?>
27
  <?php echo __('When specified, this will be the only media statistics redirect applied to this category. Please enable Strict Category Podcasting to apply statistics redirect on non category pages.', 'powerpress'); ?>
28
  <?php } else if( $FeedAttribs['type'] == 'ttid' ) { ?>
29
+ <?php echo __('Note: Stats prefix is applied to this podcast feed only. The redirect will NOT apply to pages.', 'powerpress'); ?>
30
  <?php } else if( $FeedAttribs['type'] == 'channel' ) { ?>
31
  <?php echo __('When specified, this will be the only media statistics redirect applied to this podcast channel.', 'powerpress'); ?>
32
  <?php } else if( $FeedAttribs['type'] == 'post_type' ) { ?>