Version Description
- Hides the download control of players, when are used the default players of devices.
Download this release
Release Info
Developer | codepeople |
Plugin | Music Player for WooCommerce |
Version | 1.0.112 |
Comparing to | |
See all releases |
Code changes from version 1.0.104 to 1.0.112
- addons/wcfm.addon.php +64 -0
- addons/wcfm/script.js +6 -0
- addons/wcfm/style.css +11 -0
- css/style.css +1 -1
- js/public.js +6 -6
- js/public_src.js +7 -2
- languages/music-player-for-woocommerce-en_US.mo +0 -0
- languages/music-player-for-woocommerce-en_US.po +73 -64
- readme.txt +36 -7
- views/global_options.php +10 -0
- views/player_options.php +3 -2
- wcmp.php +23 -8
- widgets/playlist_widget/css/style.css +3 -3
addons/wcfm.addon.php
ADDED
@@ -0,0 +1,64 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
if(!class_exists('WCMP_WCFM_ADDON'))
|
3 |
+
{
|
4 |
+
class WCMP_WCFM_ADDON
|
5 |
+
{
|
6 |
+
private $_wcmp;
|
7 |
+
|
8 |
+
function __construct($wcmp)
|
9 |
+
{
|
10 |
+
$this->_wcmp = $wcmp;
|
11 |
+
add_action('after_wcfm_products_downloadable',array($this, 'show_settings'), 10, 2);
|
12 |
+
add_action('save_post_product', array($this, 'save_post'), 10, 3);
|
13 |
+
add_action('wp_ajax_delete_wcfm_product', array($this, 'delete_product'));
|
14 |
+
} // End __construct
|
15 |
+
|
16 |
+
public function show_settings($product_id, $product_type)
|
17 |
+
{
|
18 |
+
$post = get_post( $product_id );
|
19 |
+
wp_enqueue_style('wcmp-wcfm-css', plugin_dir_url(__FILE__).'wcfm/style.css');
|
20 |
+
wp_enqueue_script('wcmp-wcfm-js', plugin_dir_url(__FILE__).'wcfm/script.js');
|
21 |
+
?>
|
22 |
+
<div class="page_collapsible simple variable grouped" id="wcfm_products_manage_form_wcmp_head"><label class="wcfmfa fa-object-group"></label><?php _e('Music Player', 'music-player-for-woocommerce'); ?><span></span></div>
|
23 |
+
<div class="wcfm-container simple variable grouped">
|
24 |
+
<div id="wcfm_products_manage_form_wcmp_expander" class="wcfm-content">
|
25 |
+
<input type="hidden" name="wcmp_nonce" value="<?php echo wp_create_nonce('wcmp_updating_product'); ?>" />
|
26 |
+
<?php
|
27 |
+
include_once dirname(__FILE__).'/../views/player_options.php';
|
28 |
+
?>
|
29 |
+
</div>
|
30 |
+
</div>
|
31 |
+
<!-- end collapsible -->
|
32 |
+
<div class="wcfm_clearfix"></div>
|
33 |
+
<?php
|
34 |
+
} // End show_settings
|
35 |
+
|
36 |
+
public function save_post($post_id, $post, $update)
|
37 |
+
{
|
38 |
+
if(!empty($_POST['wcfm_products_manage_form']))
|
39 |
+
{
|
40 |
+
$arr = wp_parse_args($_POST['wcfm_products_manage_form']);
|
41 |
+
if(!empty($arr))
|
42 |
+
{
|
43 |
+
$_POST = array_replace_recursive($_POST, $arr);
|
44 |
+
$_REQUEST = array_replace_recursive($_REQUEST, $arr);
|
45 |
+
|
46 |
+
$post = wc_get_product( $post_id );
|
47 |
+
$this->_wcmp->save_post($post_id, $post, true);
|
48 |
+
}
|
49 |
+
}
|
50 |
+
} // End save_post
|
51 |
+
|
52 |
+
public function delete_product()
|
53 |
+
{
|
54 |
+
$proid = @intval($_POST['proid']);
|
55 |
+
if($proid) $this->_wcmp->delete_post($proid);
|
56 |
+
} // End delete_product
|
57 |
+
|
58 |
+
//******************** PRIVATE METHODS ************************
|
59 |
+
|
60 |
+
|
61 |
+
} // End WCMP_WCFM_ADDON
|
62 |
+
}
|
63 |
+
|
64 |
+
new WCMP_WCFM_ADDON($wcmp);
|
addons/wcfm/script.js
ADDED
@@ -0,0 +1,6 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
jQuery(
|
2 |
+
function(){
|
3 |
+
var $ = jQuery;
|
4 |
+
$('#wcfm_products_manage_form_wcmp_expander :checkbox').addClass('wcfm-checkbox');
|
5 |
+
}
|
6 |
+
);
|
addons/wcfm/style.css
ADDED
@@ -0,0 +1,11 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
.wcfm-tabWrap{overflow-y:auto !important;}
|
2 |
+
#wcfm_products_manage_form_wcmp_expander *{font-size:15px;}
|
3 |
+
#wcfm_products_manage_form_wcmp_expander .wcfm-checkbox{margin-right: 20px;}
|
4 |
+
#wcfm_products_manage_form_wcmp_expander .wcmp-player-settings td:first-child{ font-style: italic !important; font-weight: 600!important; vertical-align: top;}
|
5 |
+
#wcfm_products_manage_form_wcmp_expander .wcmp-player-settings table td{width:auto;}
|
6 |
+
#wcfm_products_manage_form_wcmp_expander table{margin-top:5px; margin-bottom:5px;}
|
7 |
+
#wcfm_products_manage_form_wcmp_expander .wcmp-player-settings,
|
8 |
+
#wcfm_products_manage_form_wcmp_expander .wcmp-player-demos{border: 1px solid #dfdfdf !important;padding:10px;}
|
9 |
+
#wcfm_products_manage_form_wcmp_expander .wcmp-demo-files a{white-space:nowrap !important;}
|
10 |
+
#wcfm_products_manage_form_wcmp_expander [name="_wcmp_file_percent"]{max-width: 150px;display: inline;}
|
11 |
+
#wcfm_products_manage_form_wcmp_expander .wcmp-tip-text li{list-style: none !important;}
|
css/style.css
CHANGED
@@ -13,7 +13,7 @@
|
|
13 |
.wcmp-player.track.mejs-wmp{width:40px !important;height:40px !important;}
|
14 |
.wcmp-player.track.mejs-wmp .mejs-controls{height:40px !important; width:40px !important; background:transparent !important;}
|
15 |
|
16 |
-
.wcmp-player-list{width:100%; border:0;}
|
17 |
.wcmp-player-list *{word-break:normal !important;}
|
18 |
.wcmp-player-list td{border:0;padding:5px;}
|
19 |
.wcmp-player-list table{width:100%;margin:0;}
|
13 |
.wcmp-player.track.mejs-wmp{width:40px !important;height:40px !important;}
|
14 |
.wcmp-player.track.mejs-wmp .mejs-controls{height:40px !important; width:40px !important; background:transparent !important;}
|
15 |
|
16 |
+
.wcmp-player-list{width:100%; border:0;overflow:visible;}
|
17 |
.wcmp-player-list *{word-break:normal !important;}
|
18 |
.wcmp-player-list td{border:0;padding:5px;}
|
19 |
.wcmp-player-list table{width:100%;margin:0;}
|
js/public.js
CHANGED
@@ -3,9 +3,9 @@ $jscomp.defineProperty=$jscomp.ASSUME_ES5||"function"==typeof Object.definePrope
|
|
3 |
$jscomp.polyfill=function(a,c,b,f){if(c){b=$jscomp.global;a=a.split(".");for(f=0;f<a.length-1;f++){var g=a[f];g in b||(b[g]={});b=b[g]}a=a[a.length-1];f=b[a];c=c(f);c!=f&&null!=c&&$jscomp.defineProperty(b,a,{configurable:!0,writable:!0,value:c})}};$jscomp.polyfill("Array.prototype.find",function(a){return a?a:function(a,b){return $jscomp.findInternal(this,a,b).v}},"es6","es3");
|
4 |
(function(){var a=[],c=0;window.generate_the_wcmp=function(b){function f(e){if(e+1<c){var h=e+1;a[h]instanceof d&&a[h].is("a")?a[h].is(":visible")?a[h].click():f(e+1):d(a[h].container).is(":visible")?a[h].play():f(e+1)}}function g(a){var e=a.data("product"),b=d("img.product-"+e);b.length&&1==d('[data-product="'+e+'"]').length&&(e=b.offset(),a=a.closest("div.wcmp-player"),a.css({position:"absolute","z-index":999999}).offset({left:e.left+(b.width()-a.width())/2,top:e.top+(b.height()-a.height())/2}))}
|
5 |
if(!("boolean"!==typeof b&&"undefined"!=typeof wcmp_global_settings&&1*wcmp_global_settings.onload)&&"undefined"===typeof generated_the_wcmp){generated_the_wcmp=!0;var d=jQuery;d(document).on("click",".wcmp-player-container",function(a){a.preventDefault();a.stopPropagation()});d.expr[":"].regex=function(a,b,c){b=c[3].split(",");var e=/^(data|css):/;c=b[0].match(e)?b[0].split(":")[0]:"attr";e=b.shift().replace(e,"");return(new RegExp(b.join("").replace(/^\s+|\s+$/g,""),"ig")).test(d(a)[c](e))};var m=
|
6 |
-
"undefined"!=typeof wcmp_global_settings?wcmp_global_settings.play_all:!0;b=d("audio.wcmp-player:not(.track):not([playernumber])");var n=d("audio.wcmp-player.track:not([playernumber])"),
|
7 |
-
|
8 |
-
f(a))});a.addEventListener("loadedmetadata",function(a){e(a)})}}
|
9 |
-
c);c++;g(b);d(window).resize(function(){g(b)})});d(
|
10 |
-
b.html()+"</td>")),b.html("").append(c))})}};window.wcmp_force_init=function(){delete window.generated_the_wcmp;generate_the_wcmp(!0)};jQuery(generate_the_wcmp);jQuery(window).on("load",function(){generate_the_wcmp(!0);var a=jQuery,c=window.navigator.userAgent;a("[data-lazyloading]").each(function(){var b=a(this);b.attr("preload",b.data("lazyloading"))});if(c.match(/iPad/i)||
|
11 |
-
function(){if("undefined"==typeof wcmp_preprocessed_players){wcmp_preprocessed_players=!0;var b=a(this);a(".wcmp-player audio").each(function(){this.play();this.pause()});setTimeout(function(){b.click()},500)}})}).on("popstate",function(){jQuery("audio[data-product]:not([playernumber])").length&&wcmp_force_init()})})();
|
3 |
$jscomp.polyfill=function(a,c,b,f){if(c){b=$jscomp.global;a=a.split(".");for(f=0;f<a.length-1;f++){var g=a[f];g in b||(b[g]={});b=b[g]}a=a[a.length-1];f=b[a];c=c(f);c!=f&&null!=c&&$jscomp.defineProperty(b,a,{configurable:!0,writable:!0,value:c})}};$jscomp.polyfill("Array.prototype.find",function(a){return a?a:function(a,b){return $jscomp.findInternal(this,a,b).v}},"es6","es3");
|
4 |
(function(){var a=[],c=0;window.generate_the_wcmp=function(b){function f(e){if(e+1<c){var h=e+1;a[h]instanceof d&&a[h].is("a")?a[h].is(":visible")?a[h].click():f(e+1):d(a[h].container).is(":visible")?a[h].play():f(e+1)}}function g(a){var e=a.data("product"),b=d("img.product-"+e);b.length&&1==d('[data-product="'+e+'"]').length&&(e=b.offset(),a=a.closest("div.wcmp-player"),a.css({position:"absolute","z-index":999999}).offset({left:e.left+(b.width()-a.width())/2,top:e.top+(b.height()-a.height())/2}))}
|
5 |
if(!("boolean"!==typeof b&&"undefined"!=typeof wcmp_global_settings&&1*wcmp_global_settings.onload)&&"undefined"===typeof generated_the_wcmp){generated_the_wcmp=!0;var d=jQuery;d(document).on("click",".wcmp-player-container",function(a){a.preventDefault();a.stopPropagation()});d.expr[":"].regex=function(a,b,c){b=c[3].split(",");var e=/^(data|css):/;c=b[0].match(e)?b[0].split(":")[0]:"attr";e=b.shift().replace(e,"");return(new RegExp(b.join("").replace(/^\s+|\s+$/g,""),"ig")).test(d(a)[c](e))};var m=
|
6 |
+
"undefined"!=typeof wcmp_global_settings?wcmp_global_settings.play_all:!0,k="undefined"!=typeof wcmp_global_settings&&"ios_controls"in wcmp_global_settings&&1*wcmp_global_settings.ios_controls?!0:!1;b=d("audio.wcmp-player:not(.track):not([playernumber])");var n=d("audio.wcmp-player.track:not([playernumber])"),l={iPadUseNativeControls:k,iPhoneUseNativeControls:k,success:function(a,b){var e=function(a){a=d(a.target);var b=a.data("duration");"undefined"!=typeof b&&a.closest(".wcmp-player-container").find(".mejs-duration").html(b)};
|
7 |
+
a.addEventListener("timeupdate",function(a){e(a);isNaN(this.currentTime)||isNaN(this.duration)||-1==this.src.indexOf("ms-action=secure")||(4>this.duration-this.currentTime?this.setVolume(this.volume-this.volume/3):("undefined"==typeof this.bkVolume&&(this.bkVolume=this.volume),this.setVolume(this.bkVolume)))});a.addEventListener("volumechange",function(a){!isNaN(this.currentTime)&&!isNaN(this.duration)&&-1!=this.src.indexOf("ms-action=secure")&&4<this.duration-this.currentTime&&this.currentTime&&
|
8 |
+
(this.bkVolume=this.volume)});a.addEventListener("ended",function(a){1*m&&(a=1*d(this).attr("playernumber"),f(a))});a.addEventListener("loadedmetadata",function(a){e(a)})}};k=".product-type-grouped :regex(name,quantity\\[\\d+\\])";b.each(function(){var b=d(this);b.find("source").attr("src");l.audioVolume="vertical";try{a[c]=new MediaElementPlayer(b,l)}catch(h){a[c]=new MediaElementPlayer(b[0],l)}b.attr("playernumber",c);c++});n.each(function(){var b=d(this);b.find("source").attr("src");l.features=
|
9 |
+
["playpause"];try{a[c]=new MediaElementPlayer(b,l)}catch(h){a[c]=new MediaElementPlayer(b[0],l)}b.attr("playernumber",c);c++;g(b);d(window).resize(function(){g(b)})});d(k).length||(k=".product-type-grouped [data-product_id]");d(k).each(function(){var a=d(this),b=a.data("product_id")||a.attr("name").replace(/[^\d]/g,"");b=d(".wcmp-player-list.merge_in_grouped_products .product-"+b+":first .wcmp-player-title");var c=d("<table></table>");b.length&&(b.closest("tr").addClass("wcmp-first-in-product"),0==
|
10 |
+
b.closest("form").length&&b.closest(".wcmp-player-list").prependTo(a.closest("form")),c.append(a.closest("tr").prepend("<td>"+b.html()+"</td>")),b.html("").append(c))})}};window.wcmp_force_init=function(){delete window.generated_the_wcmp;generate_the_wcmp(!0)};jQuery(generate_the_wcmp);jQuery(window).on("load",function(){generate_the_wcmp(!0);var a=jQuery,c=window.navigator.userAgent;a("[data-lazyloading]").each(function(){var b=a(this);b.attr("preload",b.data("lazyloading"))});if(c.match(/iPad/i)||
|
11 |
+
c.match(/iPhone/i))if("undefined"!=typeof wcmp_global_settings?wcmp_global_settings.play_all:1)a(".wcmp-player .mejs-play button").one("click",function(){if("undefined"==typeof wcmp_preprocessed_players){wcmp_preprocessed_players=!0;var b=a(this);a(".wcmp-player audio").each(function(){this.play();this.pause()});setTimeout(function(){b.click()},500)}})}).on("popstate",function(){jQuery("audio[data-product]:not([playernumber])").length&&wcmp_force_init()})})();
|
js/public_src.js
CHANGED
@@ -66,11 +66,16 @@
|
|
66 |
|
67 |
//------------------------ MAIN CODE ------------------------
|
68 |
var play_all = (typeof wcmp_global_settings != 'undefined') ? wcmp_global_settings[ 'play_all' ] : true, // Play all songs on page
|
|
|
|
|
|
|
|
|
|
|
69 |
s = $('audio.wcmp-player:not(.track):not([playernumber])'),
|
70 |
m = $('audio.wcmp-player.track:not([playernumber])'),
|
71 |
c = {
|
72 |
-
iPadUseNativeControls:
|
73 |
-
iPhoneUseNativeControls:
|
74 |
success: function( media, dom ){
|
75 |
var update_duration = function(e){
|
76 |
var t = $(e.target),
|
66 |
|
67 |
//------------------------ MAIN CODE ------------------------
|
68 |
var play_all = (typeof wcmp_global_settings != 'undefined') ? wcmp_global_settings[ 'play_all' ] : true, // Play all songs on page
|
69 |
+
ios_controls = (
|
70 |
+
typeof wcmp_global_settings != 'undefined' &&
|
71 |
+
('ios_controls' in wcmp_global_settings) &&
|
72 |
+
wcmp_global_settings['ios_controls']*1
|
73 |
+
) ? true : false,
|
74 |
s = $('audio.wcmp-player:not(.track):not([playernumber])'),
|
75 |
m = $('audio.wcmp-player.track:not([playernumber])'),
|
76 |
c = {
|
77 |
+
iPadUseNativeControls: ios_controls,
|
78 |
+
iPhoneUseNativeControls: ios_controls,
|
79 |
success: function( media, dom ){
|
80 |
var update_duration = function(e){
|
81 |
var t = $(e.target),
|
languages/music-player-for-woocommerce-en_US.mo
CHANGED
Binary file
|
languages/music-player-for-woocommerce-en_US.po
CHANGED
@@ -1,8 +1,8 @@
|
|
1 |
msgid ""
|
2 |
msgstr ""
|
3 |
"Project-Id-Version: music-player-for-woocommerce\n"
|
4 |
-
"POT-Creation-Date: 2020-06-
|
5 |
-
"PO-Revision-Date: 2020-06-
|
6 |
"Last-Translator: CodePeople\n"
|
7 |
"Language-Team: CodePeople\n"
|
8 |
"Language: en_US\n"
|
@@ -116,7 +116,7 @@ msgid ""
|
|
116 |
"modified as <b>dl=1</b>"
|
117 |
msgstr ""
|
118 |
|
119 |
-
#: addons/dokan/player_options.php:181 views/global_options.php:
|
120 |
msgid ""
|
121 |
"The player is shown only if the product is \"downloadable\" with at least an "
|
122 |
"audio file between the \"Downloadable files\", or you have selected your own "
|
@@ -127,88 +127,88 @@ msgstr ""
|
|
127 |
msgid "Include music player"
|
128 |
msgstr ""
|
129 |
|
130 |
-
#: addons/dokan/player_options.php:185 views/global_options.php:
|
131 |
#: views/player_options.php:180
|
132 |
msgid "Include in"
|
133 |
msgstr ""
|
134 |
|
135 |
-
#: addons/dokan/player_options.php:188 views/global_options.php:
|
136 |
#: views/player_options.php:183
|
137 |
msgid "single-entry pages <i>(Product's page only)</i>"
|
138 |
msgstr ""
|
139 |
|
140 |
-
#: addons/dokan/player_options.php:191 views/global_options.php:
|
141 |
#: views/player_options.php:186
|
142 |
msgid ""
|
143 |
"multiple entries pages <i>(Shop pages, archive pages, but not in the "
|
144 |
"product's page)</i>"
|
145 |
msgstr ""
|
146 |
|
147 |
-
#: addons/dokan/player_options.php:194 views/global_options.php:
|
148 |
#: views/player_options.php:189
|
149 |
msgid "all pages <i>(with single or multiple-entries)</i>"
|
150 |
msgstr ""
|
151 |
|
152 |
-
#: addons/dokan/player_options.php:198 views/global_options.php:
|
153 |
#: views/player_options.php:193
|
154 |
msgid "Merge in grouped products"
|
155 |
msgstr ""
|
156 |
|
157 |
-
#: addons/dokan/player_options.php:200 views/global_options.php:
|
158 |
#: views/player_options.php:194
|
159 |
msgid ""
|
160 |
"In grouped products, display the \"Add to cart\" buttons and quantity fields "
|
161 |
"in the players rows"
|
162 |
msgstr ""
|
163 |
|
164 |
-
#: addons/dokan/player_options.php:203 views/global_options.php:
|
165 |
#: views/player_options.php:197 widgets/playlist_widget.php:71
|
166 |
msgid "Player layout"
|
167 |
msgstr ""
|
168 |
|
169 |
-
#: addons/dokan/player_options.php:222 views/global_options.php:
|
170 |
#: views/player_options.php:219 widgets/playlist_widget.php:87
|
171 |
msgid "Preload"
|
172 |
msgstr ""
|
173 |
|
174 |
-
#: addons/dokan/player_options.php:230 views/global_options.php:
|
175 |
#: views/player_options.php:229 widgets/playlist_widget.php:83
|
176 |
msgid "Play all"
|
177 |
msgstr ""
|
178 |
|
179 |
-
#: addons/dokan/player_options.php:233 views/global_options.php:
|
180 |
#: views/player_options.php:236
|
181 |
msgid "Player controls"
|
182 |
msgstr ""
|
183 |
|
184 |
-
#: addons/dokan/player_options.php:235 views/global_options.php:
|
185 |
#: views/player_options.php:238
|
186 |
msgid "the play/pause button only"
|
187 |
msgstr ""
|
188 |
|
189 |
-
#: addons/dokan/player_options.php:236 views/global_options.php:
|
190 |
#: views/player_options.php:239
|
191 |
msgid "all controls"
|
192 |
msgstr ""
|
193 |
|
194 |
-
#: addons/dokan/player_options.php:237 views/global_options.php:
|
195 |
#: views/player_options.php:240
|
196 |
msgid "the play/pause button only, or all controls depending on context"
|
197 |
msgstr ""
|
198 |
|
199 |
-
#: addons/dokan/player_options.php:241 views/global_options.php:
|
200 |
#: views/player_options.php:245
|
201 |
msgid "for play/pause button players display them on cover images."
|
202 |
msgstr ""
|
203 |
|
204 |
-
#: addons/dokan/player_options.php:242 views/global_options.php:
|
205 |
#: views/player_options.php:248
|
206 |
msgid ""
|
207 |
"(This feature is experimental, and will depend on the theme active on the "
|
208 |
"website.)"
|
209 |
msgstr ""
|
210 |
|
211 |
-
#: addons/dokan/player_options.php:247 views/global_options.php:
|
212 |
#: views/player_options.php:255
|
213 |
msgid "Display the player's title"
|
214 |
msgstr ""
|
@@ -264,11 +264,11 @@ msgstr ""
|
|
264 |
msgid "Insert a playlist with the products players"
|
265 |
msgstr ""
|
266 |
|
267 |
-
#: views/global_options.php:
|
268 |
msgid "Music Player for WooCommerce - Global Settings"
|
269 |
msgstr ""
|
270 |
|
271 |
-
#: views/global_options.php:
|
272 |
msgid ""
|
273 |
"For reporting any issue or to request a customization, <a href=\"https://"
|
274 |
"wordpress.dwbooster.com/contact-us\" target=\"_blank\">CLICK HERE</a><br />\n"
|
@@ -280,19 +280,19 @@ msgid ""
|
|
280 |
"target=\"_blank\">Public page: Click to visit the WooCommerce Store</a>"
|
281 |
msgstr ""
|
282 |
|
283 |
-
#: views/global_options.php:
|
284 |
msgid "Registering of Plugin"
|
285 |
msgstr ""
|
286 |
|
287 |
-
#: views/global_options.php:
|
288 |
msgid "Enter the email address of buyer"
|
289 |
msgstr ""
|
290 |
|
291 |
-
#: views/global_options.php:
|
292 |
msgid "Register"
|
293 |
msgstr ""
|
294 |
|
295 |
-
#: views/global_options.php:
|
296 |
msgid ""
|
297 |
"<p>The player uses the audio files associated to the product. If you want "
|
298 |
"protecting the audio files for selling, tick the checkbox: <b>\"Protect the "
|
@@ -304,102 +304,111 @@ msgid ""
|
|
304 |
"pay for them.</b></p>"
|
305 |
msgstr ""
|
306 |
|
307 |
-
#: views/global_options.php:
|
308 |
msgid "General Settings"
|
309 |
msgstr ""
|
310 |
|
311 |
-
#: views/global_options.php:
|
312 |
msgid "Include the players only for registered users"
|
313 |
msgstr ""
|
314 |
|
315 |
-
#: views/global_options.php:
|
316 |
msgid "The general settings affect only the PRO version of the plugin"
|
317 |
msgstr ""
|
318 |
|
319 |
-
#: views/global_options.php:
|
320 |
#: views/player_options.php:47 views/player_options.php:261
|
321 |
msgid "CLICK HERE TO GET THE PRO VERSION OF THE PLUGIN"
|
322 |
msgstr ""
|
323 |
|
324 |
-
#: views/global_options.php:
|
325 |
msgid ""
|
326 |
"For buyers, play the purchased audio files instead the truncated files for "
|
327 |
"demo"
|
328 |
msgstr ""
|
329 |
|
330 |
-
#: views/global_options.php:
|
331 |
msgid "Truncate the audio files for demo with ffmpeg"
|
332 |
msgstr ""
|
333 |
|
334 |
-
#: views/global_options.php:
|
335 |
msgid "ffmpeg path"
|
336 |
msgstr ""
|
337 |
|
338 |
-
#: views/global_options.php:
|
339 |
msgid "Delete the demo files generated previously"
|
340 |
msgstr ""
|
341 |
|
342 |
-
#: views/global_options.php:
|
343 |
msgid "Store demo files on Google Drive"
|
344 |
msgstr ""
|
345 |
|
346 |
-
#: views/global_options.php:
|
347 |
msgid "Import a JSON Key file"
|
348 |
msgstr ""
|
349 |
|
350 |
-
#: views/global_options.php:
|
351 |
msgid "Troubleshoot Area"
|
352 |
msgstr ""
|
353 |
|
354 |
-
#: views/global_options.php:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
355 |
msgid "Loading players in the onload event"
|
356 |
msgstr ""
|
357 |
|
358 |
-
#: views/global_options.php:
|
359 |
msgid "tick the checkbox if the players are not being loaded properly"
|
360 |
msgstr ""
|
361 |
|
362 |
-
#: views/global_options.php:
|
363 |
msgid "For files whose extensions cannot be determined"
|
364 |
msgstr ""
|
365 |
|
366 |
-
#: views/global_options.php:
|
367 |
msgid "handle them as mp3 files"
|
368 |
msgstr ""
|
369 |
|
370 |
-
#: views/global_options.php:
|
371 |
msgid ""
|
372 |
"For the WooCommerce Gutenberg Blocks, include the main player in the "
|
373 |
"products titles"
|
374 |
msgstr ""
|
375 |
|
376 |
-
#: views/global_options.php:
|
377 |
msgid "Includes the main player in front of products titles"
|
378 |
msgstr ""
|
379 |
|
380 |
-
#: views/global_options.php:
|
381 |
msgid "WooCommerce hook used to display the players in the shop pages"
|
382 |
msgstr ""
|
383 |
|
384 |
-
#: views/global_options.php:
|
385 |
msgid ""
|
386 |
"The plugin uses by default the <b>woocommerce_shop_loop_item_title</b> hook. "
|
387 |
"If the player is not being displayed, enter the hook used by the theme "
|
388 |
"active on your website."
|
389 |
msgstr ""
|
390 |
|
391 |
-
#: views/global_options.php:
|
392 |
msgid "WooCommerce hook used to display the players in the products pages"
|
393 |
msgstr ""
|
394 |
|
395 |
-
#: views/global_options.php:
|
396 |
msgid ""
|
397 |
"The plugin uses by default the <b>woocommerce_single_product_summary</b> "
|
398 |
"hook. If the player is not being displayed, enter the hook used by the theme "
|
399 |
"active on your website."
|
400 |
msgstr ""
|
401 |
|
402 |
-
#: views/global_options.php:
|
403 |
msgid ""
|
404 |
"Click on the <a href=\"https://docs.woocommerce.com/wc-apidocs/hook-docs.html"
|
405 |
"\" target=\"_blank\">THIS LINK</a> for the list of available <a href="
|
@@ -407,79 +416,79 @@ msgid ""
|
|
407 |
"style=\"font-weight:bold;font-size:1.3em;\">WooCommerce Hooks</a>"
|
408 |
msgstr ""
|
409 |
|
410 |
-
#: views/global_options.php:
|
411 |
msgid "Include music player in all products"
|
412 |
msgstr ""
|
413 |
|
414 |
-
#: views/global_options.php:
|
415 |
msgid "Include players in cart"
|
416 |
msgstr ""
|
417 |
|
418 |
-
#: views/global_options.php:
|
419 |
msgid "The security feature is only available in the PRO version of the plugin"
|
420 |
msgstr ""
|
421 |
|
422 |
-
#: views/global_options.php:
|
423 |
msgid "Protect the file"
|
424 |
msgstr ""
|
425 |
|
426 |
-
#: views/global_options.php:
|
427 |
msgid "Percent of audio used for protected playbacks"
|
428 |
msgstr ""
|
429 |
|
430 |
-
#: views/global_options.php:
|
431 |
msgid ""
|
432 |
"To prevent unauthorized copying of audio files, the files will be partially "
|
433 |
"accessible"
|
434 |
msgstr ""
|
435 |
|
436 |
-
#: views/global_options.php:
|
437 |
msgid ""
|
438 |
"Text to display beside the player explaining that demos are partial versions "
|
439 |
"of the original files"
|
440 |
msgstr ""
|
441 |
|
442 |
-
#: views/global_options.php:
|
443 |
msgid "Scope"
|
444 |
msgstr ""
|
445 |
|
446 |
-
#: views/global_options.php:
|
447 |
msgid ""
|
448 |
"Ticking the checkbox the previous settings are applied to all products, even "
|
449 |
"if they have a player enabled."
|
450 |
msgstr ""
|
451 |
|
452 |
-
#: views/global_options.php:
|
453 |
msgid "Apply the previous settings to all products pages in the website."
|
454 |
msgstr ""
|
455 |
|
456 |
-
#: views/global_options.php:
|
457 |
msgid "Analytics"
|
458 |
msgstr ""
|
459 |
|
460 |
-
#: views/global_options.php:
|
461 |
msgid ""
|
462 |
"Allows the integration with Google Analytics for registering new events when "
|
463 |
"the songs are played. The event information would include: the URL to the "
|
464 |
"audio file as the event label and the product's id as its value."
|
465 |
msgstr ""
|
466 |
|
467 |
-
#: views/global_options.php:
|
468 |
msgid "Note"
|
469 |
msgstr ""
|
470 |
|
471 |
-
#: views/global_options.php:
|
472 |
msgid ""
|
473 |
"If the preload option is configured as Metadata or Auto in the players "
|
474 |
"settings, the event would be registered when the audio file is loaded by the "
|
475 |
"player and not exactly when they are playing."
|
476 |
msgstr ""
|
477 |
|
478 |
-
#: views/global_options.php:
|
479 |
msgid "Tracking Id"
|
480 |
msgstr ""
|
481 |
|
482 |
-
#: views/global_options.php:
|
483 |
msgid "Save settings"
|
484 |
msgstr ""
|
485 |
|
@@ -529,7 +538,7 @@ msgstr ""
|
|
529 |
msgid "Help"
|
530 |
msgstr ""
|
531 |
|
532 |
-
#: wcmp.php:
|
533 |
msgid "There are no products that satisfy the block's settings"
|
534 |
msgstr ""
|
535 |
|
1 |
msgid ""
|
2 |
msgstr ""
|
3 |
"Project-Id-Version: music-player-for-woocommerce\n"
|
4 |
+
"POT-Creation-Date: 2020-06-17 20:26+0200\n"
|
5 |
+
"PO-Revision-Date: 2020-06-17 20:27+0200\n"
|
6 |
"Last-Translator: CodePeople\n"
|
7 |
"Language-Team: CodePeople\n"
|
8 |
"Language: en_US\n"
|
116 |
"modified as <b>dl=1</b>"
|
117 |
msgstr ""
|
118 |
|
119 |
+
#: addons/dokan/player_options.php:181 views/global_options.php:223
|
120 |
msgid ""
|
121 |
"The player is shown only if the product is \"downloadable\" with at least an "
|
122 |
"audio file between the \"Downloadable files\", or you have selected your own "
|
127 |
msgid "Include music player"
|
128 |
msgstr ""
|
129 |
|
130 |
+
#: addons/dokan/player_options.php:185 views/global_options.php:226
|
131 |
#: views/player_options.php:180
|
132 |
msgid "Include in"
|
133 |
msgstr ""
|
134 |
|
135 |
+
#: addons/dokan/player_options.php:188 views/global_options.php:229
|
136 |
#: views/player_options.php:183
|
137 |
msgid "single-entry pages <i>(Product's page only)</i>"
|
138 |
msgstr ""
|
139 |
|
140 |
+
#: addons/dokan/player_options.php:191 views/global_options.php:232
|
141 |
#: views/player_options.php:186
|
142 |
msgid ""
|
143 |
"multiple entries pages <i>(Shop pages, archive pages, but not in the "
|
144 |
"product's page)</i>"
|
145 |
msgstr ""
|
146 |
|
147 |
+
#: addons/dokan/player_options.php:194 views/global_options.php:235
|
148 |
#: views/player_options.php:189
|
149 |
msgid "all pages <i>(with single or multiple-entries)</i>"
|
150 |
msgstr ""
|
151 |
|
152 |
+
#: addons/dokan/player_options.php:198 views/global_options.php:245
|
153 |
#: views/player_options.php:193
|
154 |
msgid "Merge in grouped products"
|
155 |
msgstr ""
|
156 |
|
157 |
+
#: addons/dokan/player_options.php:200 views/global_options.php:246
|
158 |
#: views/player_options.php:194
|
159 |
msgid ""
|
160 |
"In grouped products, display the \"Add to cart\" buttons and quantity fields "
|
161 |
"in the players rows"
|
162 |
msgstr ""
|
163 |
|
164 |
+
#: addons/dokan/player_options.php:203 views/global_options.php:249
|
165 |
#: views/player_options.php:197 widgets/playlist_widget.php:71
|
166 |
msgid "Player layout"
|
167 |
msgstr ""
|
168 |
|
169 |
+
#: addons/dokan/player_options.php:222 views/global_options.php:271
|
170 |
#: views/player_options.php:219 widgets/playlist_widget.php:87
|
171 |
msgid "Preload"
|
172 |
msgstr ""
|
173 |
|
174 |
+
#: addons/dokan/player_options.php:230 views/global_options.php:281
|
175 |
#: views/player_options.php:229 widgets/playlist_widget.php:83
|
176 |
msgid "Play all"
|
177 |
msgstr ""
|
178 |
|
179 |
+
#: addons/dokan/player_options.php:233 views/global_options.php:288
|
180 |
#: views/player_options.php:236
|
181 |
msgid "Player controls"
|
182 |
msgstr ""
|
183 |
|
184 |
+
#: addons/dokan/player_options.php:235 views/global_options.php:290
|
185 |
#: views/player_options.php:238
|
186 |
msgid "the play/pause button only"
|
187 |
msgstr ""
|
188 |
|
189 |
+
#: addons/dokan/player_options.php:236 views/global_options.php:291
|
190 |
#: views/player_options.php:239
|
191 |
msgid "all controls"
|
192 |
msgstr ""
|
193 |
|
194 |
+
#: addons/dokan/player_options.php:237 views/global_options.php:292
|
195 |
#: views/player_options.php:240
|
196 |
msgid "the play/pause button only, or all controls depending on context"
|
197 |
msgstr ""
|
198 |
|
199 |
+
#: addons/dokan/player_options.php:241 views/global_options.php:297
|
200 |
#: views/player_options.php:245
|
201 |
msgid "for play/pause button players display them on cover images."
|
202 |
msgstr ""
|
203 |
|
204 |
+
#: addons/dokan/player_options.php:242 views/global_options.php:300
|
205 |
#: views/player_options.php:248
|
206 |
msgid ""
|
207 |
"(This feature is experimental, and will depend on the theme active on the "
|
208 |
"website.)"
|
209 |
msgstr ""
|
210 |
|
211 |
+
#: addons/dokan/player_options.php:247 views/global_options.php:307
|
212 |
#: views/player_options.php:255
|
213 |
msgid "Display the player's title"
|
214 |
msgstr ""
|
264 |
msgid "Insert a playlist with the products players"
|
265 |
msgstr ""
|
266 |
|
267 |
+
#: views/global_options.php:35
|
268 |
msgid "Music Player for WooCommerce - Global Settings"
|
269 |
msgstr ""
|
270 |
|
271 |
+
#: views/global_options.php:39
|
272 |
msgid ""
|
273 |
"For reporting any issue or to request a customization, <a href=\"https://"
|
274 |
"wordpress.dwbooster.com/contact-us\" target=\"_blank\">CLICK HERE</a><br />\n"
|
280 |
"target=\"_blank\">Public page: Click to visit the WooCommerce Store</a>"
|
281 |
msgstr ""
|
282 |
|
283 |
+
#: views/global_options.php:48
|
284 |
msgid "Registering of Plugin"
|
285 |
msgstr ""
|
286 |
|
287 |
+
#: views/global_options.php:50
|
288 |
msgid "Enter the email address of buyer"
|
289 |
msgstr ""
|
290 |
|
291 |
+
#: views/global_options.php:51
|
292 |
msgid "Register"
|
293 |
msgstr ""
|
294 |
|
295 |
+
#: views/global_options.php:63 views/player_options.php:43
|
296 |
msgid ""
|
297 |
"<p>The player uses the audio files associated to the product. If you want "
|
298 |
"protecting the audio files for selling, tick the checkbox: <b>\"Protect the "
|
304 |
"pay for them.</b></p>"
|
305 |
msgstr ""
|
306 |
|
307 |
+
#: views/global_options.php:74
|
308 |
msgid "General Settings"
|
309 |
msgstr ""
|
310 |
|
311 |
+
#: views/global_options.php:77
|
312 |
msgid "Include the players only for registered users"
|
313 |
msgstr ""
|
314 |
|
315 |
+
#: views/global_options.php:81
|
316 |
msgid "The general settings affect only the PRO version of the plugin"
|
317 |
msgstr ""
|
318 |
|
319 |
+
#: views/global_options.php:81 views/global_options.php:313
|
320 |
#: views/player_options.php:47 views/player_options.php:261
|
321 |
msgid "CLICK HERE TO GET THE PRO VERSION OF THE PLUGIN"
|
322 |
msgstr ""
|
323 |
|
324 |
+
#: views/global_options.php:84
|
325 |
msgid ""
|
326 |
"For buyers, play the purchased audio files instead the truncated files for "
|
327 |
"demo"
|
328 |
msgstr ""
|
329 |
|
330 |
+
#: views/global_options.php:91
|
331 |
msgid "Truncate the audio files for demo with ffmpeg"
|
332 |
msgstr ""
|
333 |
|
334 |
+
#: views/global_options.php:95
|
335 |
msgid "ffmpeg path"
|
336 |
msgstr ""
|
337 |
|
338 |
+
#: views/global_options.php:102
|
339 |
msgid "Delete the demo files generated previously"
|
340 |
msgstr ""
|
341 |
|
342 |
+
#: views/global_options.php:109
|
343 |
msgid "Store demo files on Google Drive"
|
344 |
msgstr ""
|
345 |
|
346 |
+
#: views/global_options.php:113
|
347 |
msgid "Import a JSON Key file"
|
348 |
msgstr ""
|
349 |
|
350 |
+
#: views/global_options.php:159
|
351 |
msgid "Troubleshoot Area"
|
352 |
msgstr ""
|
353 |
|
354 |
+
#: views/global_options.php:163
|
355 |
+
msgid "On iPads and iPhones, use native controls"
|
356 |
+
msgstr ""
|
357 |
+
|
358 |
+
#: views/global_options.php:167
|
359 |
+
msgid ""
|
360 |
+
"tick the checkbox if the players do not work properly on iPads or iPhones"
|
361 |
+
msgstr ""
|
362 |
+
|
363 |
+
#: views/global_options.php:172
|
364 |
msgid "Loading players in the onload event"
|
365 |
msgstr ""
|
366 |
|
367 |
+
#: views/global_options.php:176
|
368 |
msgid "tick the checkbox if the players are not being loaded properly"
|
369 |
msgstr ""
|
370 |
|
371 |
+
#: views/global_options.php:181
|
372 |
msgid "For files whose extensions cannot be determined"
|
373 |
msgstr ""
|
374 |
|
375 |
+
#: views/global_options.php:185
|
376 |
msgid "handle them as mp3 files"
|
377 |
msgstr ""
|
378 |
|
379 |
+
#: views/global_options.php:190
|
380 |
msgid ""
|
381 |
"For the WooCommerce Gutenberg Blocks, include the main player in the "
|
382 |
"products titles"
|
383 |
msgstr ""
|
384 |
|
385 |
+
#: views/global_options.php:194
|
386 |
msgid "Includes the main player in front of products titles"
|
387 |
msgstr ""
|
388 |
|
389 |
+
#: views/global_options.php:199
|
390 |
msgid "WooCommerce hook used to display the players in the shop pages"
|
391 |
msgstr ""
|
392 |
|
393 |
+
#: views/global_options.php:203
|
394 |
msgid ""
|
395 |
"The plugin uses by default the <b>woocommerce_shop_loop_item_title</b> hook. "
|
396 |
"If the player is not being displayed, enter the hook used by the theme "
|
397 |
"active on your website."
|
398 |
msgstr ""
|
399 |
|
400 |
+
#: views/global_options.php:208
|
401 |
msgid "WooCommerce hook used to display the players in the products pages"
|
402 |
msgstr ""
|
403 |
|
404 |
+
#: views/global_options.php:212
|
405 |
msgid ""
|
406 |
"The plugin uses by default the <b>woocommerce_single_product_summary</b> "
|
407 |
"hook. If the player is not being displayed, enter the hook used by the theme "
|
408 |
"active on your website."
|
409 |
msgstr ""
|
410 |
|
411 |
+
#: views/global_options.php:217
|
412 |
msgid ""
|
413 |
"Click on the <a href=\"https://docs.woocommerce.com/wc-apidocs/hook-docs.html"
|
414 |
"\" target=\"_blank\">THIS LINK</a> for the list of available <a href="
|
416 |
"style=\"font-weight:bold;font-size:1.3em;\">WooCommerce Hooks</a>"
|
417 |
msgstr ""
|
418 |
|
419 |
+
#: views/global_options.php:222
|
420 |
msgid "Include music player in all products"
|
421 |
msgstr ""
|
422 |
|
423 |
+
#: views/global_options.php:239
|
424 |
msgid "Include players in cart"
|
425 |
msgstr ""
|
426 |
|
427 |
+
#: views/global_options.php:313 views/player_options.php:261
|
428 |
msgid "The security feature is only available in the PRO version of the plugin"
|
429 |
msgstr ""
|
430 |
|
431 |
+
#: views/global_options.php:316 views/player_options.php:264
|
432 |
msgid "Protect the file"
|
433 |
msgstr ""
|
434 |
|
435 |
+
#: views/global_options.php:320 views/player_options.php:268
|
436 |
msgid "Percent of audio used for protected playbacks"
|
437 |
msgstr ""
|
438 |
|
439 |
+
#: views/global_options.php:323 views/player_options.php:271
|
440 |
msgid ""
|
441 |
"To prevent unauthorized copying of audio files, the files will be partially "
|
442 |
"accessible"
|
443 |
msgstr ""
|
444 |
|
445 |
+
#: views/global_options.php:328
|
446 |
msgid ""
|
447 |
"Text to display beside the player explaining that demos are partial versions "
|
448 |
"of the original files"
|
449 |
msgstr ""
|
450 |
|
451 |
+
#: views/global_options.php:344
|
452 |
msgid "Scope"
|
453 |
msgstr ""
|
454 |
|
455 |
+
#: views/global_options.php:345
|
456 |
msgid ""
|
457 |
"Ticking the checkbox the previous settings are applied to all products, even "
|
458 |
"if they have a player enabled."
|
459 |
msgstr ""
|
460 |
|
461 |
+
#: views/global_options.php:345
|
462 |
msgid "Apply the previous settings to all products pages in the website."
|
463 |
msgstr ""
|
464 |
|
465 |
+
#: views/global_options.php:357
|
466 |
msgid "Analytics"
|
467 |
msgstr ""
|
468 |
|
469 |
+
#: views/global_options.php:361
|
470 |
msgid ""
|
471 |
"Allows the integration with Google Analytics for registering new events when "
|
472 |
"the songs are played. The event information would include: the URL to the "
|
473 |
"audio file as the event label and the product's id as its value."
|
474 |
msgstr ""
|
475 |
|
476 |
+
#: views/global_options.php:362
|
477 |
msgid "Note"
|
478 |
msgstr ""
|
479 |
|
480 |
+
#: views/global_options.php:362
|
481 |
msgid ""
|
482 |
"If the preload option is configured as Metadata or Auto in the players "
|
483 |
"settings, the event would be registered when the audio file is loaded by the "
|
484 |
"player and not exactly when they are playing."
|
485 |
msgstr ""
|
486 |
|
487 |
+
#: views/global_options.php:367
|
488 |
msgid "Tracking Id"
|
489 |
msgstr ""
|
490 |
|
491 |
+
#: views/global_options.php:375
|
492 |
msgid "Save settings"
|
493 |
msgstr ""
|
494 |
|
538 |
msgid "Help"
|
539 |
msgstr ""
|
540 |
|
541 |
+
#: wcmp.php:935
|
542 |
msgid "There are no products that satisfy the block's settings"
|
543 |
msgstr ""
|
544 |
|
readme.txt
CHANGED
@@ -1,9 +1,9 @@
|
|
1 |
=== Music Player for WooCommerce ===
|
2 |
Contributors: codepeople
|
3 |
Donate link: https://wcmp.dwbooster.com
|
4 |
-
Tags:WooCommerce,music player,audio,music,song,player,audio player,media player,mp3,wav,oga,ogg,dokan
|
5 |
Requires at least: 3.5.0
|
6 |
-
Tested up to: 5.
|
7 |
Stable tag: trunk
|
8 |
License: GPLv2 or later
|
9 |
License URI: http://www.gnu.org/licenses/gpl-2.0.html
|
@@ -12,9 +12,9 @@ Music Player for WooCommerce includes the MediaElement.js music player in the pa
|
|
12 |
|
13 |
== Description ==
|
14 |
|
15 |
-
Features of the Music Player for WooCommerce and
|
16 |
|
17 |
-
♪ Integrate a music player into the WooCommerce products and
|
18 |
♪ Includes an audio player that supports formats: OGA, MP3, WAV, WMA
|
19 |
♪ Includes multiple skins for the Music Player
|
20 |
♪ Supports all most popular web browsers and mobile devices
|
@@ -28,7 +28,7 @@ Features of the Music Player for WooCommerce and Dokan:
|
|
28 |
|
29 |
Note: for the other editors, insert directly the playlists' shortcodes.
|
30 |
|
31 |
-
Music Player for WooCommerce includes the MediaElement.js music player in the pages of the products with audio files associated, and in the store's pages. It allows the integration with
|
32 |
|
33 |
MediaElement.js is an music player compatible with all major browsers: Internet Explorer, Firefox, Opera, Safari, Chrome and mobile devices: iPhone, iPad, Android. The music player is developed following the html5 standard. The music player supports the following file formats: MP3, WAV, WMA and OGA.
|
34 |
|
@@ -73,7 +73,7 @@ The global settings are accessible through the menu option: "Settings/Music Play
|
|
73 |
|
74 |
**Setting up the Music Players through the products' pages**
|
75 |
|
76 |
-
The Music Players are configured from the products pages
|
77 |
|
78 |
**Settings Interface**
|
79 |
|
@@ -199,6 +199,35 @@ Each time save the data of a product, the files for demo are deleted and generat
|
|
199 |
|
200 |
== Changelog ==
|
201 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
202 |
= 1.0.104 =
|
203 |
|
204 |
* Modifies the settings page of the plugin.
|
@@ -648,6 +677,6 @@ Each time save the data of a product, the files for demo are deleted and generat
|
|
648 |
|
649 |
== Upgrade Notice ==
|
650 |
|
651 |
-
= 1.0.
|
652 |
|
653 |
Important note: If you are using the Professional version don't update via the WP dashboard but using your personal update link. Contact us if you need further information: http://wordpress.dwbooster.com/support
|
1 |
=== Music Player for WooCommerce ===
|
2 |
Contributors: codepeople
|
3 |
Donate link: https://wcmp.dwbooster.com
|
4 |
+
Tags:WooCommerce,music player,audio,music,song,player,audio player,media player,mp3,wav,oga,ogg,dokan,wcfm
|
5 |
Requires at least: 3.5.0
|
6 |
+
Tested up to: 5.5
|
7 |
Stable tag: trunk
|
8 |
License: GPLv2 or later
|
9 |
License URI: http://www.gnu.org/licenses/gpl-2.0.html
|
12 |
|
13 |
== Description ==
|
14 |
|
15 |
+
Features of the Music Player for WooCommerce, Dokan, and WCFM Marketplace:
|
16 |
|
17 |
+
♪ Integrate a music player into the WooCommerce products, Dokan and WCFM Marketplace
|
18 |
♪ Includes an audio player that supports formats: OGA, MP3, WAV, WMA
|
19 |
♪ Includes multiple skins for the Music Player
|
20 |
♪ Supports all most popular web browsers and mobile devices
|
28 |
|
29 |
Note: for the other editors, insert directly the playlists' shortcodes.
|
30 |
|
31 |
+
Music Player for WooCommerce includes the MediaElement.js music player in the pages of the products with audio files associated, and in the store's pages. It allows the integration with the multivendor stores generated with Dokan and WCFM Marketplace. Furthermore, the plugin allows selecting between multiple skins.
|
32 |
|
33 |
MediaElement.js is an music player compatible with all major browsers: Internet Explorer, Firefox, Opera, Safari, Chrome and mobile devices: iPhone, iPad, Android. The music player is developed following the html5 standard. The music player supports the following file formats: MP3, WAV, WMA and OGA.
|
34 |
|
73 |
|
74 |
**Setting up the Music Players through the products' pages**
|
75 |
|
76 |
+
The Music Players are configured from the products pages, the Dokan interface, and WCFM Marketplace.
|
77 |
|
78 |
**Settings Interface**
|
79 |
|
199 |
|
200 |
== Changelog ==
|
201 |
|
202 |
+
= 1.0.112 =
|
203 |
+
|
204 |
+
* Hides the download control of players, when are used the default players of devices.
|
205 |
+
|
206 |
+
= 1.0.111 =
|
207 |
+
= 1.0.110 =
|
208 |
+
|
209 |
+
* Fixes a CSS conflict with themes of thirds.
|
210 |
+
|
211 |
+
= 1.0.109 =
|
212 |
+
|
213 |
+
* Includes the integration with WCFM Marketplace.
|
214 |
+
|
215 |
+
= 1.0.108 =
|
216 |
+
|
217 |
+
* Fixes a conflict with themes of thirds.
|
218 |
+
|
219 |
+
= 1.0.107 =
|
220 |
+
|
221 |
+
* Modifies the module that generates the demo files.
|
222 |
+
|
223 |
+
= 1.0.106 =
|
224 |
+
|
225 |
+
* Includes new options in the troubleshoot area, in the settings page of the plugin, to load the players on iPads and iPhones with the default controls of devices.
|
226 |
+
|
227 |
+
= 1.0.105 =
|
228 |
+
|
229 |
+
* Updates some vendors libraries.
|
230 |
+
|
231 |
= 1.0.104 =
|
232 |
|
233 |
* Modifies the settings page of the plugin.
|
677 |
|
678 |
== Upgrade Notice ==
|
679 |
|
680 |
+
= 1.0.112 =
|
681 |
|
682 |
Important note: If you are using the Professional version don't update via the WP dashboard but using your personal update link. Contact us if you need further information: http://wordpress.dwbooster.com/support
|
views/global_options.php
CHANGED
@@ -6,6 +6,7 @@ wp_enqueue_style( 'wcmp-admin-style', plugin_dir_url(__FILE__).'../css/style.adm
|
|
6 |
|
7 |
$troubleshoot_default_extension = $GLOBALS[ 'WooCommerceMusicPlayer' ]->get_global_attr( '_wcmp_default_extension', false );
|
8 |
$force_main_player_in_title = $GLOBALS[ 'WooCommerceMusicPlayer' ]->get_global_attr( '_wcmp_force_main_player_in_title', 1 );
|
|
|
9 |
$troubleshoot_onload = $GLOBALS[ 'WooCommerceMusicPlayer' ]->get_global_attr( '_wcmp_onload', false );
|
10 |
$include_main_player_hook = trim($GLOBALS[ 'WooCommerceMusicPlayer' ]->get_global_attr('_wcmp_main_player_hook', ''));
|
11 |
$include_all_players_hook = trim($GLOBALS[ 'WooCommerceMusicPlayer' ]->get_global_attr('_wcmp_all_players_hook', ''));
|
@@ -157,6 +158,15 @@ _e(
|
|
157 |
<tr>
|
158 |
<td colspan="2"><h2><?php _e('Troubleshoot Area', 'music-player-for-woocommerce'); ?></h2></td>
|
159 |
</tr>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
160 |
<tr>
|
161 |
<td width="30%">
|
162 |
<?php _e( 'Loading players in the onload event', 'music-player-for-woocommerce' ); ?>
|
6 |
|
7 |
$troubleshoot_default_extension = $GLOBALS[ 'WooCommerceMusicPlayer' ]->get_global_attr( '_wcmp_default_extension', false );
|
8 |
$force_main_player_in_title = $GLOBALS[ 'WooCommerceMusicPlayer' ]->get_global_attr( '_wcmp_force_main_player_in_title', 1 );
|
9 |
+
$ios_controls = $GLOBALS[ 'WooCommerceMusicPlayer' ]->get_global_attr( '_wcmp_ios_controls', false );
|
10 |
$troubleshoot_onload = $GLOBALS[ 'WooCommerceMusicPlayer' ]->get_global_attr( '_wcmp_onload', false );
|
11 |
$include_main_player_hook = trim($GLOBALS[ 'WooCommerceMusicPlayer' ]->get_global_attr('_wcmp_main_player_hook', ''));
|
12 |
$include_all_players_hook = trim($GLOBALS[ 'WooCommerceMusicPlayer' ]->get_global_attr('_wcmp_all_players_hook', ''));
|
158 |
<tr>
|
159 |
<td colspan="2"><h2><?php _e('Troubleshoot Area', 'music-player-for-woocommerce'); ?></h2></td>
|
160 |
</tr>
|
161 |
+
<tr>
|
162 |
+
<td width="30%">
|
163 |
+
<?php _e( 'On iPads and iPhones, use native controls', 'music-player-for-woocommerce' ); ?>
|
164 |
+
</td>
|
165 |
+
<td>
|
166 |
+
<input type="checkbox" name="_wcmp_ios_controls" <?php if($ios_controls) print 'CHECKED'; ?>/>
|
167 |
+
<?php _e( 'tick the checkbox if the players do not work properly on iPads or iPhones', 'music-player-for-woocommerce' ); ?>
|
168 |
+
</td>
|
169 |
+
</tr>
|
170 |
<tr>
|
171 |
<td width="30%">
|
172 |
<?php _e( 'Loading players in the onload event', 'music-player-for-woocommerce' ); ?>
|
views/player_options.php
CHANGED
@@ -4,7 +4,8 @@ if( !defined( 'WCMP_PLUGIN_URL' ) ) { echo 'Direct access not allowed.'; exit;
|
|
4 |
// include resources
|
5 |
wp_enqueue_style( 'wcmp-admin-style', plugin_dir_url(__FILE__).'../css/style.admin.css', array(), '1.0.24' );
|
6 |
|
7 |
-
global $post;
|
|
|
8 |
$enable_player = $GLOBALS[ 'WooCommerceMusicPlayer' ]->get_product_attr( $post->ID, '_wcmp_enable_player', false );
|
9 |
$show_in = $GLOBALS[ 'WooCommerceMusicPlayer' ]->get_product_attr( $post->ID, '_wcmp_show_in', 'all' );
|
10 |
$player_style = $GLOBALS[ 'WooCommerceMusicPlayer' ]->get_product_attr( $post->ID, '_wcmp_player_layout', WCMP_DEFAULT_PLAYER_LAYOUT );
|
@@ -278,7 +279,7 @@ $on_cover = intval( $GLOBALS[ 'WooCommerceMusicPlayer' ]->get_product_attr( $p
|
|
278 |
<table class="widefat" style="border:0;padding-bottom:20px;">
|
279 |
<tr valign="top">
|
280 |
<td style="color:#DDDDDD;">
|
281 |
-
<table class="widefat" style="border:1px solid #e1e1e1;">
|
282 |
<tr valign="top">
|
283 |
<td style="color:#DDDDDD;"><input type="checkbox" disabled /> <?php _e('Select my own demo files', 'music-player-for-woocommerce'); ?></td>
|
284 |
</tr>
|
4 |
// include resources
|
5 |
wp_enqueue_style( 'wcmp-admin-style', plugin_dir_url(__FILE__).'../css/style.admin.css', array(), '1.0.24' );
|
6 |
|
7 |
+
if(empty($post)) global $post;
|
8 |
+
|
9 |
$enable_player = $GLOBALS[ 'WooCommerceMusicPlayer' ]->get_product_attr( $post->ID, '_wcmp_enable_player', false );
|
10 |
$show_in = $GLOBALS[ 'WooCommerceMusicPlayer' ]->get_product_attr( $post->ID, '_wcmp_show_in', 'all' );
|
11 |
$player_style = $GLOBALS[ 'WooCommerceMusicPlayer' ]->get_product_attr( $post->ID, '_wcmp_player_layout', WCMP_DEFAULT_PLAYER_LAYOUT );
|
279 |
<table class="widefat" style="border:0;padding-bottom:20px;">
|
280 |
<tr valign="top">
|
281 |
<td style="color:#DDDDDD;">
|
282 |
+
<table class="widefat wcmp-player-demos" style="border:1px solid #e1e1e1;">
|
283 |
<tr valign="top">
|
284 |
<td style="color:#DDDDDD;"><input type="checkbox" disabled /> <?php _e('Select my own demo files', 'music-player-for-woocommerce'); ?></td>
|
285 |
</tr>
|
wcmp.php
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
/*
|
3 |
Plugin Name: Music Player for WooCommerce
|
4 |
Plugin URI: https://wcmp.dwbooster.com
|
5 |
-
Version: 1.0.
|
6 |
Text Domain: music-player-for-woocommerce
|
7 |
Author: CodePeople
|
8 |
Author URI: https://wcmp.dwbooster.com
|
@@ -243,6 +243,7 @@ if ( !class_exists( 'WooCommerceMusicPlayer' ) ) {
|
|
243 |
$registered_only = (isset($_REQUEST['_wcmp_registered_only'])) ? 1 : 0;
|
244 |
$troubleshoot_default_extension = (isset($_REQUEST['_wcmp_default_extension'])) ? true : false;
|
245 |
$force_main_player_in_title = (isset($_REQUEST['_wcmp_force_main_player_in_title'])) ? 1 : 0;
|
|
|
246 |
$troubleshoot_onload = (isset($_REQUEST['_wcmp_onload'])) ? true : false;
|
247 |
$include_main_player_hook = (isset($_REQUEST['_wcmp_main_player_hook'])) ? sanitize_text_field($_REQUEST['_wcmp_main_player_hook']) : '';
|
248 |
$include_all_players_hook = (isset($_REQUEST['_wcmp_all_players_hook'])) ? sanitize_text_field($_REQUEST['_wcmp_all_players_hook']) : '';
|
@@ -283,6 +284,7 @@ if ( !class_exists( 'WooCommerceMusicPlayer' ) ) {
|
|
283 |
'_wcmp_on_cover' => $on_cover,
|
284 |
'_wcmp_default_extension' => $troubleshoot_default_extension,
|
285 |
'_wcmp_force_main_player_in_title' => $force_main_player_in_title,
|
|
|
286 |
'_wcmp_onload' => $troubleshoot_onload,
|
287 |
'_wcmp_main_player_hook' => $include_main_player_hook,
|
288 |
'_wcmp_all_players_hook' => $include_all_players_hook,
|
@@ -400,19 +402,19 @@ if ( !class_exists( 'WooCommerceMusicPlayer' ) ) {
|
|
400 |
// Registering resources
|
401 |
wp_register_style(
|
402 |
'wp-mediaelement_22212',
|
403 |
-
'https://cdnjs.cloudflare.com/ajax/libs/mediaelement/2.
|
404 |
);
|
405 |
wp_register_script(
|
406 |
'wp-mediaelement_22212',
|
407 |
-
'https://cdnjs.cloudflare.com/ajax/libs/mediaelement/2.
|
408 |
);
|
409 |
|
410 |
wp_enqueue_style( 'wp-mediaelement_22212' );
|
411 |
-
wp_enqueue_style( 'wp-mediaelement-skins', 'https://cdnjs.cloudflare.com/ajax/libs/mediaelement/2.
|
412 |
wp_enqueue_style( 'wcmp-style', plugin_dir_url(__FILE__).'css/style.css' );
|
413 |
wp_enqueue_script('jquery');
|
414 |
wp_enqueue_script('wp-mediaelement_22212');
|
415 |
-
wp_enqueue_script('wcmp-script', plugin_dir_url(__FILE__).'js/public.js', array('jquery', 'wp-mediaelement_22212'),'1.0.
|
416 |
|
417 |
$play_all = $GLOBALS[ 'WooCommerceMusicPlayer' ]->get_global_attr(
|
418 |
'_wcmp_play_all',
|
@@ -437,11 +439,13 @@ if ( !class_exists( 'WooCommerceMusicPlayer' ) ) {
|
|
437 |
);
|
438 |
}
|
439 |
}
|
|
|
440 |
wp_localize_script(
|
441 |
'wcmp-script',
|
442 |
'wcmp_global_settings',
|
443 |
array(
|
444 |
'play_all'=>intval($play_all),
|
|
|
445 |
'onload' => $GLOBALS[ 'WooCommerceMusicPlayer' ]->get_global_attr('_wcmp_onload', false)
|
446 |
)
|
447 |
);
|
@@ -867,7 +871,7 @@ if ( !class_exists( 'WooCommerceMusicPlayer' ) ) {
|
|
867 |
|
868 |
public function add_data_product($player, $product_id, $index)
|
869 |
{
|
870 |
-
$player = preg_replace('/<audio\b/i', '<audio data-product="'.esc_attr($product_id).'" ',$player);
|
871 |
return $player;
|
872 |
} // End add_data_product
|
873 |
|
@@ -1028,7 +1032,7 @@ if ( !class_exists( 'WooCommerceMusicPlayer' ) ) {
|
|
1028 |
|
1029 |
$file_path = $this->_files_directory_path.$file_name;
|
1030 |
|
1031 |
-
if(
|
1032 |
{
|
1033 |
return 'http'.((is_ssl()) ? 's:' : ':').$this->_files_directory_url.$file_name;
|
1034 |
}
|
@@ -1190,6 +1194,17 @@ if ( !class_exists( 'WooCommerceMusicPlayer' ) ) {
|
|
1190 |
return $file_name;
|
1191 |
} // End _demo_file_name
|
1192 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1193 |
/**
|
1194 |
* Create a temporal file and redirect to the new file
|
1195 |
*/
|
@@ -1207,7 +1222,7 @@ if ( !class_exists( 'WooCommerceMusicPlayer' ) ) {
|
|
1207 |
$text = 'The requested URL was not found on this server';
|
1208 |
$file_path = $this->_files_directory_path.$file_name;
|
1209 |
|
1210 |
-
if(
|
1211 |
header('location: http'.((is_ssl()) ? 's:' : ':').$this->_files_directory_url.$file_name);
|
1212 |
exit;
|
1213 |
}else{
|
2 |
/*
|
3 |
Plugin Name: Music Player for WooCommerce
|
4 |
Plugin URI: https://wcmp.dwbooster.com
|
5 |
+
Version: 1.0.112
|
6 |
Text Domain: music-player-for-woocommerce
|
7 |
Author: CodePeople
|
8 |
Author URI: https://wcmp.dwbooster.com
|
243 |
$registered_only = (isset($_REQUEST['_wcmp_registered_only'])) ? 1 : 0;
|
244 |
$troubleshoot_default_extension = (isset($_REQUEST['_wcmp_default_extension'])) ? true : false;
|
245 |
$force_main_player_in_title = (isset($_REQUEST['_wcmp_force_main_player_in_title'])) ? 1 : 0;
|
246 |
+
$ios_controls = (isset($_REQUEST['_wcmp_ios_controls'])) ? true : false;
|
247 |
$troubleshoot_onload = (isset($_REQUEST['_wcmp_onload'])) ? true : false;
|
248 |
$include_main_player_hook = (isset($_REQUEST['_wcmp_main_player_hook'])) ? sanitize_text_field($_REQUEST['_wcmp_main_player_hook']) : '';
|
249 |
$include_all_players_hook = (isset($_REQUEST['_wcmp_all_players_hook'])) ? sanitize_text_field($_REQUEST['_wcmp_all_players_hook']) : '';
|
284 |
'_wcmp_on_cover' => $on_cover,
|
285 |
'_wcmp_default_extension' => $troubleshoot_default_extension,
|
286 |
'_wcmp_force_main_player_in_title' => $force_main_player_in_title,
|
287 |
+
'_wcmp_ios_controls' => $ios_controls,
|
288 |
'_wcmp_onload' => $troubleshoot_onload,
|
289 |
'_wcmp_main_player_hook' => $include_main_player_hook,
|
290 |
'_wcmp_all_players_hook' => $include_all_players_hook,
|
402 |
// Registering resources
|
403 |
wp_register_style(
|
404 |
'wp-mediaelement_22212',
|
405 |
+
'https://cdnjs.cloudflare.com/ajax/libs/mediaelement/2.23.5/mediaelementplayer.min.css'
|
406 |
);
|
407 |
wp_register_script(
|
408 |
'wp-mediaelement_22212',
|
409 |
+
'https://cdnjs.cloudflare.com/ajax/libs/mediaelement/2.23.5/mediaelement-and-player.min.js'
|
410 |
);
|
411 |
|
412 |
wp_enqueue_style( 'wp-mediaelement_22212' );
|
413 |
+
wp_enqueue_style( 'wp-mediaelement-skins', 'https://cdnjs.cloudflare.com/ajax/libs/mediaelement/2.23.5/mejs-skins.min.css' );
|
414 |
wp_enqueue_style( 'wcmp-style', plugin_dir_url(__FILE__).'css/style.css' );
|
415 |
wp_enqueue_script('jquery');
|
416 |
wp_enqueue_script('wp-mediaelement_22212');
|
417 |
+
wp_enqueue_script('wcmp-script', plugin_dir_url(__FILE__).'js/public.js', array('jquery', 'wp-mediaelement_22212'),'1.0.112');
|
418 |
|
419 |
$play_all = $GLOBALS[ 'WooCommerceMusicPlayer' ]->get_global_attr(
|
420 |
'_wcmp_play_all',
|
439 |
);
|
440 |
}
|
441 |
}
|
442 |
+
|
443 |
wp_localize_script(
|
444 |
'wcmp-script',
|
445 |
'wcmp_global_settings',
|
446 |
array(
|
447 |
'play_all'=>intval($play_all),
|
448 |
+
'ios_controls' => $GLOBALS[ 'WooCommerceMusicPlayer' ]->get_global_attr('_wcmp_ios_controls', false),
|
449 |
'onload' => $GLOBALS[ 'WooCommerceMusicPlayer' ]->get_global_attr('_wcmp_onload', false)
|
450 |
)
|
451 |
);
|
871 |
|
872 |
public function add_data_product($player, $product_id, $index)
|
873 |
{
|
874 |
+
$player = preg_replace('/<audio\b/i', '<audio controlslist="nodownload" data-product="'.esc_attr($product_id).'" ',$player);
|
875 |
return $player;
|
876 |
} // End add_data_product
|
877 |
|
1032 |
|
1033 |
$file_path = $this->_files_directory_path.$file_name;
|
1034 |
|
1035 |
+
if($this->_valid_demo($file_path))
|
1036 |
{
|
1037 |
return 'http'.((is_ssl()) ? 's:' : ':').$this->_files_directory_url.$file_name;
|
1038 |
}
|
1194 |
return $file_name;
|
1195 |
} // End _demo_file_name
|
1196 |
|
1197 |
+
private function _valid_demo($file_path)
|
1198 |
+
{
|
1199 |
+
if(!file_exists($file_path) || filesize($file_path) == 0) return false;
|
1200 |
+
if(function_exists('finfo_open'))
|
1201 |
+
{
|
1202 |
+
$finfo = finfo_open(FILEINFO_MIME);
|
1203 |
+
return substr(finfo_file($finfo, $file_path), 0, 4) !== 'text';
|
1204 |
+
}
|
1205 |
+
return true;
|
1206 |
+
} // End _valid_demo
|
1207 |
+
|
1208 |
/**
|
1209 |
* Create a temporal file and redirect to the new file
|
1210 |
*/
|
1222 |
$text = 'The requested URL was not found on this server';
|
1223 |
$file_path = $this->_files_directory_path.$file_name;
|
1224 |
|
1225 |
+
if($this->_valid_demo($file_path)){
|
1226 |
header('location: http'.((is_ssl()) ? 's:' : ':').$this->_files_directory_url.$file_name);
|
1227 |
exit;
|
1228 |
}else{
|
widgets/playlist_widget/css/style.css
CHANGED
@@ -8,7 +8,7 @@
|
|
8 |
|
9 |
/* New playlist layout */
|
10 |
.wcmp-widget-product{padding:10px;margin:0 !important;}
|
11 |
-
.wcmp-widget-product
|
12 |
.wcmp-widget-product.wcmp-odd-product{background-color:rgba(250, 250, 250, 0.9); border: 0 !important;}
|
13 |
.wcmp-widget-product.wcmp-even-product{background-color: rgba(255,255,255,0.8);}
|
14 |
.wcmp-widget-product:hover,
|
@@ -23,7 +23,7 @@ display:inline-block; width:24px; height:24px;
|
|
23 |
}
|
24 |
.wcmp-widget-product .wcmp-widget-product-file{display:block;margin-bottom:5px;}
|
25 |
|
26 |
-
.wcmp-widget-product-files{display: table
|
27 |
.wcmp-widget-feature-image{display:table-cell;max-width:80px;margin-right:10px;}
|
28 |
.wcmp-widget-playlist .wcmp-widget-feature-image{margin-top:5px; margin-bottom: 5px;}
|
29 |
-
.wcmp-widget-product-files-list{display:table-cell;vertical-align: top;}
|
8 |
|
9 |
/* New playlist layout */
|
10 |
.wcmp-widget-product{padding:10px;margin:0 !important;}
|
11 |
+
.wcmp-widget-product :not([class*=mejs-]){font-family: Arial, Helvetica, sans-serif;word-break:normal !important;color:#111;}
|
12 |
.wcmp-widget-product.wcmp-odd-product{background-color:rgba(250, 250, 250, 0.9); border: 0 !important;}
|
13 |
.wcmp-widget-product.wcmp-even-product{background-color: rgba(255,255,255,0.8);}
|
14 |
.wcmp-widget-product:hover,
|
23 |
}
|
24 |
.wcmp-widget-product .wcmp-widget-product-file{display:block;margin-bottom:5px;}
|
25 |
|
26 |
+
.wcmp-widget-product-files{display: table;width:100%;}
|
27 |
.wcmp-widget-feature-image{display:table-cell;max-width:80px;margin-right:10px;}
|
28 |
.wcmp-widget-playlist .wcmp-widget-feature-image{margin-top:5px; margin-bottom: 5px;}
|
29 |
+
.wcmp-widget-product-files-list{display:table-cell;width:100%; vertical-align: top;}
|