Changeset 3437768
- Timestamp:
- 01/12/2026 01:38:03 PM (3 months ago)
- Location:
- watermark-images-for-wp-and-woo-grandpluginswp/trunk
- Files:
-
- 22 added
- 25 edited
-
assets/dist/js/admin/image-edit-page.min.js (modified) (1 diff)
-
assets/dist/js/admin/settings.min.js (modified) (1 diff)
-
assets/src (added)
-
assets/src/css (added)
-
assets/src/css/admin (added)
-
assets/src/css/admin/admin-styles.scss (added)
-
assets/src/images (added)
-
assets/src/images/indicator.gif (added)
-
assets/src/images/preview-bg-white.jpg (added)
-
assets/src/images/spacer.gif (added)
-
assets/src/images/watermark.png (added)
-
assets/src/js (added)
-
assets/src/js/admin (added)
-
assets/src/js/admin/apply-watermarks-templates.js (added)
-
assets/src/js/admin/create-watermarks-templates.js (added)
-
assets/src/js/admin/image-edit-page.js (added)
-
assets/src/js/admin/settings.js (added)
-
assets/src/js/admin/single-apply-watermarks.js (added)
-
composer.json (added)
-
core/assets/src (added)
-
core/assets/src/css (added)
-
core/assets/src/css/admin-head.scss (added)
-
core/assets/src/css/style.scss (added)
-
core/core.php (modified) (19 diffs)
-
gpls-wmfw-watermark-image-for-wordpress.php (modified) (5 diffs)
-
includes/MasterStudyLMS.php (modified) (7 diffs)
-
includes/Settings.php (modified) (10 diffs)
-
includes/Utils/WatermarkUtilsTrait.php (modified) (3 diffs)
-
includes/WooImageWatermarker.php (modified) (5 diffs)
-
includes/class-apply-watermarks-queries.php (modified) (13 diffs)
-
includes/class-apply-watermarks-templates.php (modified) (8 diffs)
-
includes/class-gd-image.php (modified) (3 diffs)
-
includes/class-image-edit-page.php (modified) (3 diffs)
-
includes/class-image-watermark.php (modified) (9 diffs)
-
includes/class-image.php (modified) (4 diffs)
-
includes/class-imagick-image.php (modified) (1 diff)
-
includes/class-single-apply-watermarks.php (modified) (8 diffs)
-
includes/class-watermarks-templates.php (modified) (21 diffs)
-
languages/watermark-images-for-wp-and-woo-grandpluginswp.pot (modified) (17 diffs)
-
package.json (added)
-
readme.txt (modified) (2 diffs)
-
templates/apply-watermarks-templates-by-posts-template.php (modified) (9 diffs)
-
templates/auto-apply-watermarks-template-metabox.php (modified) (4 diffs)
-
templates/auto-resize-watermarks-template-metabox.php (modified) (5 diffs)
-
templates/bulk-apply-watermarks-template.php (modified) (1 diff)
-
templates/create-watermarks-template-metabox.php (modified) (1 diff)
-
templates/watermark-specs-template-metabox.php (modified) (4 diffs)
Legend:
- Unmodified
- Added
- Removed
-
watermark-images-for-wp-and-woo-grandpluginswp/trunk/assets/dist/js/admin/image-edit-page.min.js
r2799501 r3437768 1 'use strict';(function(_0x5447d2,_0x236239){var _0x12aea8=_0x1185,_0x240c75=_0x5447d2();while(!![]){try{var _0x8588ef=parseInt(_0x12aea8(0x201))/0x1*(-parseInt(_0x12aea8(0x208))/0x2)+parseInt(_0x12aea8(0x1ef))/0x3*(parseInt(_0x12aea8(0x1f8))/0x4)+parseInt(_0x12aea8(0x1db))/0x5*(-parseInt(_0x12aea8(0x20d))/0x6)+parseInt(_0x12aea8(0x1da))/0x7*(parseInt(_0x12aea8(0x215))/0x8)+parseInt(_0x12aea8(0x1f0))/0x9+parseInt(_0x12aea8(0x1f9))/0xa*(-parseInt(_0x12aea8(0x204))/0xb)+parseInt(_0x12aea8(0x1e8))/0xc;if(_0x8588ef===_0x236239)break;else _0x240c75['push'](_0x240c75['shift']());}catch(_0x12d15e){_0x240c75['push'](_0x240c75['shift']());}}}(_0x47a4,0x5cbc1));function _0x1185(_0x148988,_0x195834){var _0x47a496=_0x47a4();return _0x1185=function(_0x118513,_0x26345c){_0x118513=_0x118513-0x1d1;var _0xfa1002=_0x47a496[_0x118513];return _0xfa1002;},_0x1185(_0x148988,_0x195834);}function _0x47a4(){var _0x187d2f=['result','parents','<li\x20class=\x22notice-item\x22><p>','bg-primary','3589842Ofqmva','show','find','click','-watermarks-options','.toast-body','</p>','message','24pdVrzZ','deleteOriginalImageBackupAction','prop','restoreOriginalImageBackupAction','delete','target','toast','val','href','match','length','1425158yEtBDI','5KfuicD','searchParams','-watermarks-options\x20.delete-backup','push','d-none','POST','</p></li>','-msgs-toast\x20.close-toast','forEach','addClass','remove','<p>','labels','2173956yjSBDw','-restore-backup-image-size:checked','restore_backup_prompt','-watermarks-options\x20.restore-backup','gpls_wmfw_watermark_image_for_wordpress_localize_vars','.backup-options','delete_backup_prompt','15567rBtmTC','6580179kfCUlm','msg','preventDefault','<ul\x20class=\x22toast-notice-list\x22>','errors','.toast','.action-btn','data','404yiIJCX','3269990UFcaKB','classes_prefix','ajax','ajaxUrl','success','ready','bg-danger','-msgs-toast','11OWPmdl','removeClass','hide','22swTRFS','history','.loading','disabled','75458kRDVdL'];_0x47a4=function(){return _0x187d2f;};return _0x47a4();}!function(_0x5772b5){var _0x4d7619=_0x1185,_0x41f905=window[_0x4d7619(0x1ec)];function _0x5df0a4(_0x3d76e6,_0x590b1f,_0x18633a){var _0xbebe9d=_0x4d7619,_0x507b03=0x1<arguments[_0xbebe9d(0x1d9)]&&void 0x0!==_0x590b1f?_0x590b1f:_0xbebe9d(0x20c),_0x590b1f=0x2<arguments[_0xbebe9d(0x1d9)]&&void 0x0!==_0x18633a&&_0x18633a,_0x18633a=_0x5772b5('.'+_0x41f905[_0xbebe9d(0x1fa)]+_0xbebe9d(0x200));_0x18633a[_0xbebe9d(0x202)](function(_0x2067f6,_0x348fe0){var _0x4f2f78=_0xbebe9d;return(_0x348fe0[_0x4f2f78(0x1d8)](/(^|\s)bg-\S+/g)||[])['join']('\x20');});var _0x425231='';_0x590b1f?(_0x425231=_0xbebe9d(0x1f3),_0x3d76e6[_0xbebe9d(0x1e3)](function(_0x5edc79){var _0x30e706=_0xbebe9d;_0x425231+=_0x30e706(0x20b)+_0x5edc79+_0x30e706(0x1e1);}),_0x425231+='</ul>'):_0x425231=_0xbebe9d(0x1e6)+_0x3d76e6+_0xbebe9d(0x213),_0x18633a['addClass'](_0x507b03)[_0xbebe9d(0x20f)](_0xbebe9d(0x212))['html'](_0x425231),_0x18633a[_0xbebe9d(0x1d5)](_0xbebe9d(0x20e));}_0x5772b5(document)['on'](_0x4d7619(0x1fe),function(_0x525cc1){var _0x123100=_0x4d7619,_0x534cab;_0x5772b5('.'+_0x41f905[_0x123100(0x1fa)]+_0x123100(0x200))[_0x123100(0x1d5)]({'autohide':!0x1}),_0x5772b5(document)['on'](_0x123100(0x210),'.'+_0x41f905[_0x123100(0x1fa)]+_0x123100(0x1e2),function(_0x3c6ac2){var _0x213124=_0x123100;_0x5772b5(_0x3c6ac2['target'])[_0x213124(0x20a)](_0x213124(0x1f5))[_0x213124(0x1d5)](_0x213124(0x203));}),(_0x534cab=new URL(window['location'][_0x123100(0x1d7)]))[_0x123100(0x1dc)]['get'](_0x41f905[_0x123100(0x1fa)]+'-force-img-refresh')&&(_0x534cab[_0x123100(0x1dc)][_0x123100(0x1d3)](_0x41f905['classes_prefix']+'-force-img-refresh'),window[_0x123100(0x205)]['replaceState'](null,null,_0x534cab['href'])),_0x5772b5(document)['on'](_0x123100(0x210),'.'+_0x41f905[_0x123100(0x1fa)]+_0x123100(0x1eb),function(_0x5bebc0){var _0x588f6d=_0x123100,_0x2c140f;_0x5bebc0[_0x588f6d(0x1f2)](),confirm(_0x41f905[_0x588f6d(0x1e7)][_0x588f6d(0x1ea)])&&((_0x2c140f=_0x5772b5('.'+_0x41f905[_0x588f6d(0x1fa)]+_0x588f6d(0x211)))[_0x588f6d(0x20f)](_0x588f6d(0x1f6))[_0x588f6d(0x1d1)](_0x588f6d(0x207),!0x0),_0x2c140f[_0x588f6d(0x20f)]('.loading')['removeClass'](_0x588f6d(0x1df)),function(_0x513e33){var _0x15b64c=_0x588f6d,_0x44ebaf=_0x5772b5('.'+_0x41f905[_0x15b64c(0x1fa)]+_0x15b64c(0x211)),_0x4af922=[];_0x5772b5('.'+_0x41f905[_0x15b64c(0x1fa)]+_0x15b64c(0x1e9))['each'](function(_0x46b8ae,_0x4013c6){var _0x3c61fa=_0x15b64c;_0x4013c6=_0x5772b5(_0x4013c6),_0x4af922[_0x3c61fa(0x1de)](_0x4013c6[_0x3c61fa(0x1d6)]());}),_0x513e33={'action':_0x41f905[_0x15b64c(0x1d2)],'nonce':_0x41f905['nonce'],'attachmentID':_0x513e33,'sizes':_0x4af922},_0x5772b5[_0x15b64c(0x1fb)]({'method':_0x15b64c(0x1e0),'url':_0x41f905[_0x15b64c(0x1fc)],'data':_0x513e33,'success':function(_0x4f9868){var _0x5ecb7d=_0x15b64c,_0x3d3dac=_0x4f9868[_0x5ecb7d(0x1f7)][_0x5ecb7d(0x209)]&&_0x5ecb7d(0x1fd)===_0x4f9868[_0x5ecb7d(0x1f7)][_0x5ecb7d(0x209)]?'bg-primary':_0x5ecb7d(0x1ff);_0x4f9868['data']['errors']&&_0x5df0a4(_0x4f9868['data'][_0x5ecb7d(0x1f4)],_0x5ecb7d(0x1ff),!0x0),_0x4f9868[_0x5ecb7d(0x1f7)]['msg']&&_0x5df0a4(_0x4f9868[_0x5ecb7d(0x1f7)][_0x5ecb7d(0x1f1)],_0x3d3dac);},'error':function(_0x1116cd){var _0x5a25e5=_0x15b64c,_0x2c18be;null!=_0x1116cd&&null!==(_0x2c18be=_0x1116cd[_0x5a25e5(0x1f7)])&&void 0x0!==_0x2c18be&&_0x2c18be[_0x5a25e5(0x214)]&&_0x5df0a4(_0x1116cd[_0x5a25e5(0x1f7)]['message'],_0x5a25e5(0x1ff));},'complete':function(){var _0x45d784=_0x15b64c;_0x44ebaf[_0x45d784(0x20f)](_0x45d784(0x1f6))[_0x45d784(0x1d1)](_0x45d784(0x207),!0x1),_0x44ebaf['find'](_0x45d784(0x206))[_0x45d784(0x1e4)]('d-none');}});}(_0x5772b5(_0x5bebc0[_0x588f6d(0x1d4)])[_0x588f6d(0x1f7)]('id')));}),_0x5772b5(document)['on'](_0x123100(0x210),'.'+_0x41f905[_0x123100(0x1fa)]+_0x123100(0x1dd),function(_0x10703c){var _0x2c558c=_0x123100,_0x32a189,_0x14665f;_0x10703c['preventDefault'](),confirm(_0x41f905[_0x2c558c(0x1e7)][_0x2c558c(0x1ee)])&&((_0x32a189=_0x5772b5('.'+_0x41f905[_0x2c558c(0x1fa)]+_0x2c558c(0x211)))[_0x2c558c(0x20f)](_0x2c558c(0x1f6))['prop'](_0x2c558c(0x207),!0x0),_0x32a189[_0x2c558c(0x20f)](_0x2c558c(0x206))[_0x2c558c(0x202)](_0x2c558c(0x1df)),_0x10703c=_0x5772b5(_0x10703c[_0x2c558c(0x1d4)])[_0x2c558c(0x1f7)]('id'),_0x10703c=_0x10703c,_0x14665f=_0x5772b5('.'+_0x41f905[_0x2c558c(0x1fa)]+'-watermarks-options'),_0x10703c={'action':_0x41f905[_0x2c558c(0x216)],'nonce':_0x41f905['nonce'],'attachmentID':_0x10703c},_0x5772b5['ajax']({'method':_0x2c558c(0x1e0),'url':_0x41f905[_0x2c558c(0x1fc)],'data':_0x10703c,'success':function(_0x25aab0){var _0x30320d=_0x2c558c,_0x51c7e2=_0x25aab0[_0x30320d(0x1f7)]['result']&&_0x30320d(0x1fd)===_0x25aab0[_0x30320d(0x1f7)][_0x30320d(0x209)]?_0x30320d(0x20c):_0x30320d(0x1ff);_0x25aab0['data'][_0x30320d(0x1f1)]&&_0x5df0a4(_0x25aab0[_0x30320d(0x1f7)][_0x30320d(0x1f1)],_0x51c7e2),_0x25aab0[_0x30320d(0x1f7)][_0x30320d(0x1f4)]&&_0x5df0a4(_0x25aab0[_0x30320d(0x1f7)]['errors'],_0x30320d(0x1ff),!0x0),_0x25aab0['data'][_0x30320d(0x209)]&&_0x30320d(0x1fd)===_0x25aab0[_0x30320d(0x1f7)]['result']&&_0x14665f['find'](_0x30320d(0x1ed))[_0x30320d(0x1e5)]();},'error':function(_0x5aeb73){var _0xbc8987=_0x2c558c,_0x569b6d;null!=_0x5aeb73&&null!==(_0x569b6d=_0x5aeb73['data'])&&void 0x0!==_0x569b6d&&_0x569b6d[_0xbc8987(0x214)]&&_0x5df0a4(_0x5aeb73[_0xbc8987(0x1f7)][_0xbc8987(0x214)],_0xbc8987(0x1ff));},'complete':function(){var _0x3b0da5=_0x2c558c;_0x14665f[_0x3b0da5(0x20f)](_0x3b0da5(0x1f6))[_0x3b0da5(0x1d1)](_0x3b0da5(0x207),!0x1),_0x14665f['find'](_0x3b0da5(0x206))[_0x3b0da5(0x1e4)](_0x3b0da5(0x1df));}}));});});}(jQuery);1 !function(a){"use strict";var e=window.gpls_wmfw_watermark_image_for_wordpress_localize_vars;function s(s){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"bg-primary",r=arguments.length>2&&void 0!==arguments[2]&&arguments[2],n=a("."+e.classes_prefix+"-msgs-toast");n.removeClass((function(a,e){return(e.match(/(^|\s)bg-\S+/g)||[]).join(" ")}));var o="";r?(o='<ul class="toast-notice-list">',s.forEach((function(a){o+='<li class="notice-item"><p>'+a+"</p></li>"})),o+="</ul>"):o="<p>"+s+"</p>",n.addClass(t).find(".toast-body").html(o),n.toast("show")}a(document).on("ready",(function(t){var r;a("."+e.classes_prefix+"-msgs-toast").toast({autohide:!1}),a(document).on("click","."+e.classes_prefix+"-msgs-toast .close-toast",(function(e){a(e.target).parents(".toast").toast("hide")})),(r=new URL(window.location.href)).searchParams.get(e.classes_prefix+"-force-img-refresh")&&(r.searchParams.delete(e.classes_prefix+"-force-img-refresh"),window.history.replaceState(null,null,r.href)),a(document).on("click","."+e.classes_prefix+"-watermarks-options .restore-backup",(function(t){if(t.preventDefault(),confirm(e.labels.restore_backup_prompt)){var r=a("."+e.classes_prefix+"-watermarks-options");r.find(".action-btn").prop("disabled",!0),r.find(".loading").removeClass("d-none"),function(t){var r=a("."+e.classes_prefix+"-watermarks-options"),n=[];a("."+e.classes_prefix+"-restore-backup-image-size:checked").each((function(e,s){var t=a(s);n.push(t.val())}));var o={action:e.restoreOriginalImageBackupAction,nonce:e.nonce,attachmentID:t,sizes:n};a.ajax({method:"POST",url:e.ajaxUrl,data:o,success:function(a){var e=a.data.result&&"success"===a.data.result?"bg-primary":"bg-danger";a.data.errors&&s(a.data.errors,"bg-danger",!0),a.data.msg&&s(a.data.msg,e)},error:function(a){var e;null!=a&&null!==(e=a.data)&&void 0!==e&&e.message&&s(a.data.message,"bg-danger")},complete:function(){r.find(".action-btn").prop("disabled",!1),r.find(".loading").addClass("d-none")}})}(a(t.target).data("id"))}})),a(document).on("click","."+e.classes_prefix+"-watermarks-options .delete-backup",(function(t){if(t.preventDefault(),confirm(e.labels.delete_backup_prompt)){var r=a("."+e.classes_prefix+"-watermarks-options");r.find(".action-btn").prop("disabled",!0),r.find(".loading").removeClass("d-none"),function(t){var r=a("."+e.classes_prefix+"-watermarks-options"),n={action:e.deleteOriginalImageBackupAction,nonce:e.nonce,attachmentID:t};a.ajax({method:"POST",url:e.ajaxUrl,data:n,success:function(a){var e=a.data.result&&"success"===a.data.result?"bg-primary":"bg-danger";a.data.msg&&s(a.data.msg,e),a.data.errors&&s(a.data.errors,"bg-danger",!0),a.data.result&&"success"===a.data.result&&r.find(".backup-options").remove()},error:function(a){var e;null!=a&&null!==(e=a.data)&&void 0!==e&&e.message&&s(a.data.message,"bg-danger")},complete:function(){r.find(".action-btn").prop("disabled",!1),r.find(".loading").addClass("d-none")}})}(a(t.target).data("id"))}}))}))}(jQuery); -
watermark-images-for-wp-and-woo-grandpluginswp/trunk/assets/dist/js/admin/settings.min.js
r2799501 r3437768 1 'use strict';(function(_0x3659a8,_0x51f144){var _0x4abc52=_0x39c1,_0x47e4cd=_0x3659a8();while(!![]){try{var _0x443e44=parseInt(_0x4abc52(0xf1))/0x1*(-parseInt(_0x4abc52(0xe2))/0x2)+parseInt(_0x4abc52(0xd2))/0x3+parseInt(_0x4abc52(0xeb))/0x4*(-parseInt(_0x4abc52(0xd8))/0x5)+-parseInt(_0x4abc52(0xd5))/0x6+parseInt(_0x4abc52(0xde))/0x7+-parseInt(_0x4abc52(0xe4))/0x8+parseInt(_0x4abc52(0xe3))/0x9;if(_0x443e44===_0x51f144)break;else _0x47e4cd['push'](_0x47e4cd['shift']());}catch(_0x36228c){_0x47e4cd['push'](_0x47e4cd['shift']());}}}(_0x19b7,0x53d5a));function _0x39c1(_0x57aca2,_0x4bf675){var _0x19b737=_0x19b7();return _0x39c1=function(_0x39c1f7,_0x897b06){_0x39c1f7=_0x39c1f7-0xcb;var _0x149697=_0x19b737[_0x39c1f7];return _0x149697;},_0x39c1(_0x57aca2,_0x4bf675);}function _0x19b7(){var _0x2235ab=['.main-loader','html','toggle','labels','addClass','4628358BoRyGo','ttf','uploadFontFileAction','</div><div\x20class=\x22col-6\x20font-file-name\x22>','46hssYUg','320400nZPrKT','1778840zCwcfH','collapse','.available-fonts-toggle','removeClass','json','ajaxUrl','only_ttf','1938724TVReoW','.custom-font-file-notice','d-none','empty','<li\x20class=\x22font-item\x20row\x20list-group-item\x20d-flex\x20flex-row\x22><div\x20class=\x22col-6\x20font-title\x22>','</div></li>','1900vLbJKc','title','data','active','find','notice-','status','fonts','dmUploader','gpls_wmfw_watermark_image_for_wordpress_localize_vars','name','#custom-fonts-file-wrapper','1677480zudtwx','.available-fonts','ready','970992ldgVJE','class','error','5ukvqJd'];_0x19b7=function(){return _0x2235ab;};return _0x19b7();}!function(_0x57d429){var _0x9bf354=_0x39c1,_0x10e62c=window[_0x9bf354(0xcf)];function _0x3761da(){var _0x548496=_0x9bf354,_0x4dbbb3=_0x57d429(_0x548496(0xec));_0x4dbbb3['removeAttr'](_0x548496(0xd6)),_0x4dbbb3[_0x548496(0xdd)]('d-none\x20custom-font-file-notice\x20notice');}function _0x15bd59(_0x308137,_0x5aeca3){var _0x67611f=_0x9bf354;_0x3761da();var _0xae7f4=_0x57d429(_0x67611f(0xec));_0xae7f4[_0x67611f(0xdd)](_0x67611f(0xcb)+_0x5aeca3),_0xae7f4['removeClass'](_0x67611f(0xed)),_0xae7f4[_0x67611f(0xf5)]('.notice-message')[_0x67611f(0xda)](_0x308137);}_0x57d429(document)['on'](_0x9bf354(0xd4),function(){var _0x4980e6=_0x9bf354;_0x57d429(_0x4980e6(0xd1))[_0x4980e6(0xce)]({'url':_0x10e62c[_0x4980e6(0xe9)],'extraData':function(_0x1f777e){var _0x580076=_0x4980e6;return{'action':_0x10e62c[_0x580076(0xe0)],'nonce':_0x10e62c['nonce']};},'fieldName':'file','extFilter':[_0x4980e6(0xdf)],'dataType':_0x4980e6(0xe8),'onNewFile':function(){_0x3761da();},'onDragEnter':function(){var _0x24528a=_0x4980e6;this['addClass'](_0x24528a(0xf4));},'onDragLeave':function(){var _0xa90a7a=_0x4980e6;this['removeClass'](_0xa90a7a(0xf4));},'onBeforeUpload':function(_0x317103){var _0x160fb4=_0x4980e6;_0x57d429(_0x160fb4(0xd9))[_0x160fb4(0xe7)]('d-none');},'onUploadSuccess':function(_0x136165,_0x10083d){var _0x3eb28d=_0x4980e6;!0x0===_0x10083d[_0x3eb28d(0xf3)]['result']&&_0x10083d['data'][_0x3eb28d(0xcd)]&&function(_0x4757d2){var _0x9e1d28=_0x3eb28d,_0x1a429d,_0x19f68a=_0x57d429(_0x9e1d28(0xd3));for(_0x1a429d in(_0x19f68a[_0x9e1d28(0xee)](),_0x4757d2)){var _0x3b49a3=_0x9e1d28(0xef)+_0x4757d2[_0x1a429d][_0x9e1d28(0xf2)]+_0x9e1d28(0xe1)+_0x4757d2[_0x1a429d][_0x9e1d28(0xd0)]+_0x9e1d28(0xf0);_0x19f68a['append'](_0x3b49a3);}}(_0x10083d[_0x3eb28d(0xf3)][_0x3eb28d(0xcd)]),_0x15bd59(_0x10083d[_0x3eb28d(0xf3)]['message'],_0x10083d[_0x3eb28d(0xf3)][_0x3eb28d(0xcc)]);},'onUploadError':function(_0x36eec9,_0x412f20,_0x5088ec,_0x30e926){var _0x1dc7f8=_0x4980e6;_0x15bd59(_0x412f20['responseText'],_0x1dc7f8(0xd7));},'onUploadComplete':function(_0x3262bb){var _0x4b89bc=_0x4980e6;_0x57d429(_0x4b89bc(0xd9))['addClass']('d-none');},'onFileTypeError':function(_0x3c6e4e){var _0x1ef89f=_0x4980e6;_0x15bd59(_0x10e62c['labels'][_0x1ef89f(0xea)],'error');},'onFileExtError':function(_0x16dfbf){var _0x4f01d1=_0x4980e6;_0x15bd59(_0x10e62c[_0x4f01d1(0xdc)][_0x4f01d1(0xea)],_0x4f01d1(0xd7));}}),_0x57d429(document)['on']('click',_0x4980e6(0xe6),function(_0x5b48b2){var _0x21bca5=_0x4980e6;_0x57d429('.available-fonts')[_0x21bca5(0xe5)](_0x21bca5(0xdb));});});}(jQuery);1 !function(o){"use strict";var n=window.gpls_wmfw_watermark_image_for_wordpress_localize_vars;function e(){var n=o(".custom-font-file-notice");n.removeAttr("class"),n.addClass("d-none custom-font-file-notice notice")}function t(n,t){e();var a=o(".custom-font-file-notice");a.addClass("notice-"+t),a.removeClass("d-none"),a.find(".notice-message").html(n)}o(document).on("ready",(function(){o("#custom-fonts-file-wrapper").dmUploader({url:n.ajaxUrl,extraData:function(o){return{action:n.uploadFontFileAction,nonce:n.nonce}},fieldName:"file",extFilter:["ttf"],dataType:"json",onNewFile:function(){e()},onDragEnter:function(){this.addClass("active")},onDragLeave:function(){this.removeClass("active")},onBeforeUpload:function(n){o(".main-loader").removeClass("d-none")},onUploadSuccess:function(n,e){!0===e.data.result&&e.data.fonts&&function(n){var e=o(".available-fonts");for(var t in e.empty(),n){var a='<li class="font-item row list-group-item d-flex flex-row"><div class="col-6 font-title">'+n[t].title+'</div><div class="col-6 font-file-name">'+n[t].name+"</div></li>";e.append(a)}}(e.data.fonts),t(e.data.message,e.data.status)},onUploadError:function(o,n,e,a){t(n.responseText,"error")},onUploadComplete:function(n){o(".main-loader").addClass("d-none")},onFileTypeError:function(o){t(n.labels.only_ttf,"error")},onFileExtError:function(o){t(n.labels.only_ttf,"error")}}),o(document).on("click",".available-fonts-toggle",(function(n){o(".available-fonts").collapse("toggle")}))}))}(jQuery); -
watermark-images-for-wp-and-woo-grandpluginswp/trunk/core/core.php
r2953808 r3437768 86 86 'desc' => 'Track all carts in your website in real time. apply coupon, send custom notices to customers and get push notifications in real time...', 87 87 'thumbnail' => 'woo-cart-tracker.webp', 88 'pro_link' => 'https://grandplugins.com/product/woo-cart-tracker/ ?utm_source=free&utm_medium=sidebar&utm_content=' . $this->plugin_info['name'],88 'pro_link' => 'https://grandplugins.com/product/woo-cart-tracker/', 89 89 ), 90 90 'woo-advanced-add-to-cart' => array( … … 92 92 'desc' => 'Add To cart in bulk, custom prices and more...', 93 93 'thumbnail' => 'woo-advanced-add-to-cart.webp', 94 'pro_link' => 'https://grandplugins.com/product/woo-advanced-add-to-cart/ ?utm_source=free&utm_medium=sidebar&utm_content=' . $this->plugin_info['name'],94 'pro_link' => 'https://grandplugins.com/product/woo-advanced-add-to-cart/', 95 95 ), 96 96 'woo-advanced-pricing' => array( … … 98 98 'desc' => 'Apply all types of Quantity based pricing models', 99 99 'thumbnail' => 'woo-advanced-pricing.webp', 100 'pro_link' => 'https://grandplugins.com/product/woo-advanced-pricing/ ?utm_source=free&utm_medium=sidebar&utm_content=' . $this->plugin_info['name'],100 'pro_link' => 'https://grandplugins.com/product/woo-advanced-pricing/', 101 101 ), 102 102 'woo-maintenance-mode' => array( … … 105 105 'thumbnail' => 'woo-maintenance-mode.png', 106 106 'free_link' => 'https://wordpress.org/plugins/ultimate-maintenance-mode-for-woocommerce/', 107 'pro_link' => 'https://grandplugins.com/product/woocommerce-maintenance-mode-pro/ ?utm_source=free&utm_medium=sidebar&utm_content=' . $this->plugin_info['name'],107 'pro_link' => 'https://grandplugins.com/product/woocommerce-maintenance-mode-pro/', 108 108 ), 109 109 'woo-quick-view' => array( … … 112 112 'thumbnail' => 'woo-quick-view-and-buy-now.png', 113 113 'free_link' => 'https://wordpress.org/plugins/quick-view-and-buy-now-for-woocommerce/', 114 'pro_link' => 'https://grandplugins.com/product/quick-view-and-buy-now-for-woocommerce/ ?utm_source=free&utm_medium=sidebar&utm_content=' . $this->plugin_info['name'],114 'pro_link' => 'https://grandplugins.com/product/quick-view-and-buy-now-for-woocommerce/', 115 115 ), 116 116 'woo-cart-limiter' => array( … … 119 119 'thumbnail' => 'woo-cart-limiter.jpg', 120 120 'free_link' => 'https://wordpress.org/plugins/cart-limiter/', 121 'pro_link' => 'https://grandplugins.com/product/woo-cart-limiter/ ?utm_source=free&utm_medium=sidebar&utm_content=' . $this->plugin_info['name'],121 'pro_link' => 'https://grandplugins.com/product/woo-cart-limiter/', 122 122 ), 123 123 'simple-countdown-timer' => array( … … 126 126 'thumbnail' => 'simple-countdown-timer.gif', 127 127 'free_link' => 'https://wordpress.org/plugins/simple-countdown/', 128 'pro_link' => 'https://grandplugins.com/product/simple-countdown-timer/ ?utm_source=free&utm_medium=sidebar&utm_content=' . $this->plugin_info['name'],128 'pro_link' => 'https://grandplugins.com/product/simple-countdown-timer/', 129 129 ), 130 130 'wp-watermark-pdf' => array( … … 133 133 'thumbnail' => 'wp-watermark-pdf.png', 134 134 'free_link' => 'https://wordpress.org/plugins/watermark-pdf/', 135 'pro_link' => 'https://grandplugins.com/product/wp-watermark-pdf/ ?utm_source=free&utm_medium=sidebar&utm_content=' . $this->plugin_info['name'],135 'pro_link' => 'https://grandplugins.com/product/wp-watermark-pdf/', 136 136 ), 137 137 … … 141 141 'thumbnail' => 'image-sizes-controller.png', 142 142 'free_link' => 'https://wordpress.org/plugins/image-sizes-controller/', 143 'pro_link' => 'https://grandplugins.com/product/image-sizes-controller/ ?utm_source=free&utm_medium=sidebar&utm_content=' . $this->plugin_info['name'],143 'pro_link' => 'https://grandplugins.com/product/image-sizes-controller/', 144 144 ), 145 145 'wp-gif-editor' => array( … … 148 148 'thumbnail' => 'wp-gif-editor.gif', 149 149 'free_link' => 'https://wordpress.org/plugins/gif-uploader-wp-grandplugins', 150 'pro_link' => 'https://grandplugins.com/product/wp-gif-editor/ ?utm_source=free&utm_medium=sidebar&utm_content=' . $this->plugin_info['name'],150 'pro_link' => 'https://grandplugins.com/product/wp-gif-editor/', 151 151 ), 152 152 ); … … 239 239 * @param string $additional_classes 240 240 * @param string $additional_css 241 * @return void241 * @return mixed 242 242 */ 243 243 public function pro_btn( $pro_link = '', $btn_title = 'Pro', $additional_classes = '', $additional_css = '', $return = false ) { … … 251 251 } 252 252 ?> 253 <a target="_blank" class="ms-2 btn gpls-permium-btn-wave btn-primary <?php echo esc_attr( $additional_classes ); ?>" href="<?php echo esc_url_raw( $pro_link ); ?>"> 254 <span class="pro-title" style="position:relative;z-index:10;color:#FFF;"><?php printf( esc_html__( '%s' ), $btn_title ); ?></span> 253 <a target="_blank" class="ms-2 btn gpls-permium-btn-wave btn-primary <?php echo esc_attr( $additional_classes ); ?>" href="<?php echo esc_url( $pro_link ); ?>" style="position: relative;text-decoration: none;overflow: hidden;display: inline-block;font-weight: 400;line-height: 1.5;color: #FFF;text-align: center;text-decoration: none;vertical-align: middle;cursor: pointer;-webkit-user-select: none;-moz-user-select: none;user-select: none;background-color: transparent;border: 1px solid transparent;padding: .375rem .75rem;font-size: 1rem;border-radius: .25rem;transition: color .15s ease-in-out, background-color .15s ease-in-out, border-color .15s ease-in-out, box-shadow .15s ease-in-out;background-color: #0d6efd;border-color: #0d6efd;"> 254 <?php /* translators: Button title */ ?> 255 <span class="pro-title" style="position:relative;z-index:10;"><?php echo esc_html( sprintf( esc_html__( '%s', 'watermark-images-for-wp-and-woo-grandpluginswp' ), $btn_title ) ); // phpcs:ignore WordPress.WP.I18n.NoEmptyStrings ?></span> 255 256 <span class="wave"></span> 256 257 </a> … … 279 280 ?> 280 281 <p class="notice notice-success p-4 <?php echo esc_attr( $is_dismissible ? 'is-dismissible' : '' ); ?>"> 281 <?php esc_html_e( 'We would love your feedback. leaving ' ); ?>282 <a class="text-decoration-none" href="<?php echo esc_url _raw( $review_link ); ?>" target="_blank">283 <u><?php esc_html_e( 'a review is much appreciated' ); ?></u>282 <?php esc_html_e( 'We would love your feedback. leaving ', 'watermark-images-for-wp-and-woo-grandpluginswp' ); ?> 283 <a class="text-decoration-none" href="<?php echo esc_url( $review_link ); ?>" target="_blank"> 284 <u><?php esc_html_e( 'a review is much appreciated', 'watermark-images-for-wp-and-woo-grandpluginswp' ); ?></u> 284 285 <span class="dashicons dashicons-star-filled"></span> 285 286 <span class="dashicons dashicons-star-filled"></span> … … 288 289 <span class="dashicons dashicons-star-filled"></span> 289 290 </a> 290 <?php esc_html_e( ':) Thanks!' ); ?>291 <?php esc_html_e( ':) Thanks!', 'watermark-images-for-wp-and-woo-grandpluginswp' ); ?> 291 292 </p> 292 293 <?php … … 306 307 } 307 308 ?> 308 <span class="<?php echo esc_attr( $this->plugin_info['classes_general'] . '-new-keyword' ); ?> ms-1"><?php esc_html_e( 'New' ); ?></span>309 <span class="<?php echo esc_attr( $this->plugin_info['classes_general'] . '-new-keyword' ); ?> ms-1"><?php esc_html_e( 'New', 'watermark-images-for-wp-and-woo-grandpluginswp' ); ?></span> 309 310 <?php 310 311 if ( $return ) { … … 321 322 ?> 322 323 <div class="gpls-core-recommended-section mb-5"> 323 <h6 class="shadow-sm border p-3 shadow-sm border rounded"><?php esc_html_e( 'Empower Your Website with Our Additional Plugins' ); ?></h6>324 <h6 class="shadow-sm border p-3 shadow-sm border rounded"><?php esc_html_e( 'Empower Your Website with Our Additional Plugins', 'watermark-images-for-wp-and-woo-grandpluginswp' ); ?></h6> 324 325 <div class="section-body bg-light p-3 shadow-sm border rounded"> 325 326 <ul class="plugins-list list-group"> … … 333 334 <h6 class="border rounded p-1 mb-2 text-center py-3 shadow-sm fw-bolder"><?php echo esc_html( $plugin_arr['title'] ); ?></h6> 334 335 <?php if ( ! empty( $plugin_arr['thumbnail'] ) ) : ?> 335 <img width="200px" src="<?php echo esc_url _raw( $this->plugin_info['url'] . 'core/assets/images/' . $plugin_arr['thumbnail'] ); ?>" class="thumbnail img-thumbanil my-3 mx-auto">336 <img width="200px" src="<?php echo esc_url( $this->plugin_info['url'] . 'core/assets/images/' . $plugin_arr['thumbnail'] ); ?>" class="thumbnail img-thumbanil my-3 mx-auto"> 336 337 <?php endif; ?> 337 338 <p><?php echo esc_html( $plugin_arr['desc'] ); ?></p> … … 339 340 <?php if ( ! empty( $plugin_arr['pro_link'] ) ) : ?> 340 341 <div class="col d-flex justify-content-center border-end"> 341 <a class="btn btn-primary text-decoration-underline" target="_blank" href="<?php echo esc_url _raw( $plugin_arr['pro_link'] ); ?>"><strong><?php esc_html_e( 'Pro' ); ?></strong></a>342 <a class="btn btn-primary text-decoration-underline" target="_blank" href="<?php echo esc_url( $plugin_arr['pro_link'] ); ?>"><strong><?php esc_html_e( 'Pro', 'watermark-images-for-wp-and-woo-grandpluginswp' ); ?></strong></a> 342 343 </div> 343 344 <?php endif; ?> 344 345 <?php if ( ! empty( $plugin_arr['free_link'] ) ) : ?> 345 346 <div class="col d-flex justify-content-center"> 346 <a class="btn btn-success text-decoration-underline" target="_blank" href="<?php echo esc_url _raw( $plugin_arr['free_link'] ); ?>"><?php esc_html_e( 'Free' ); ?></a>347 <a class="btn btn-success text-decoration-underline" target="_blank" href="<?php echo esc_url( $plugin_arr['free_link'] ); ?>"><?php esc_html_e( 'Free', 'watermark-images-for-wp-and-woo-grandpluginswp' ); ?></a> 347 348 </div> 348 349 <?php endif; ?> … … 351 352 <?php endforeach; ?> 352 353 </ul> 353 <a class="btn btn-primary d-block mt-3" target="_blank" href="https://grandplugins.com/product-category/plugin/ ?utm_source=free&utm_medium=sidebar&utm_content=<?php echo esc_attr( $this->plugin_info['name'] ); ?>"><?php esc_html_e( 'Browse All Plugins' ); ?></a>354 <a class="btn btn-primary d-block mt-3" target="_blank" href="https://grandplugins.com/product-category/plugin/"><?php esc_html_e( 'Browse All Plugins', 'watermark-images-for-wp-and-woo-grandpluginswp' ); ?></a> 354 355 </div> 355 356 </div> -
watermark-images-for-wp-and-woo-grandpluginswp/trunk/gpls-wmfw-watermark-image-for-wordpress.php
r3428126 r3437768 14 14 * Text Domain: watermark-images-for-wp-and-woo-grandpluginswp 15 15 * Std Name: gpls-wmfw-watermark-image-for-wordpress 16 * Version: 1.1.9 16 * Version: 1.2.0 17 * Stable Tag: 1.2.0 18 * License: GPLv3 19 * License URI: https://www.gnu.org/licenses/gpl-3.0.html 17 20 */ 18 21 … … 77 80 * Singular init Function. 78 81 * 79 * @return Object82 * @return self 80 83 */ 81 84 public static function init() { … … 190 193 * Set Plugin Info 191 194 * 192 * @return array195 * @return void 193 196 */ 194 197 public static function setup_plugin_info() { … … 226 229 'classes_prefix' => 'gpls-wmfw', 227 230 'classes_general' => 'gpls-general', 228 'pro_link' => 'https://grandplugins.com/product/wp-images-watermark ?utm_source=free_plugin&utm_medium=wp&utm_campaign=ref',231 'pro_link' => 'https://grandplugins.com/product/wp-images-watermark', 229 232 'review_link' => 'https://wordpress.org/support/plugin/watermark-images-for-wp-and-woo-grandpluginswp/reviews/#new-post', 230 233 'duplicate_base' => 'gpls-wmfw-watermark-images-for-wordpress-pro/gpls-wmfw-watermark-image-for-wordpress.php', … … 239 242 private static function disable_duplicate() { 240 243 require_once \ABSPATH . 'wp-admin/includes/plugin.php'; 241 if ( ! empty( self::$plugin_info['duplicate_base'] ) && is_plugin_active( self::$plugin_info['duplicate_base'] ) ) {244 if ( ! empty( self::$plugin_info['duplicate_base'] ) && is_plugin_active( self::$plugin_info['duplicate_base'] ) ) { 242 245 require_once \ABSPATH . 'wp-admin/includes/plugin.php'; 243 deactivate_plugins( self::$plugin_info['duplicate_base'] );244 }246 deactivate_plugins( self::$plugin_info['duplicate_base'] ); 247 } 245 248 } 246 249 -
watermark-images-for-wp-and-woo-grandpluginswp/trunk/includes/MasterStudyLMS.php
r3145166 r3437768 11 11 class MasterStudyLMS { 12 12 13 use WatermarkUtilsTrait;13 use WatermarkUtilsTrait; 14 14 15 15 /** … … 20 20 protected static $instance = null; 21 21 22 /** 23 * Plugin Info 24 * @var array 25 */ 26 protected static $plugin_info; 22 /** 23 * Plugin Info 24 * 25 * @var array 26 */ 27 protected static $plugin_info; 27 28 28 /** 29 * Core 30 * @var array 31 */ 32 protected static $core; 29 /** 30 * Core 31 * 32 * @var Core 33 */ 34 protected static $core; 33 35 34 /**35 * MasterStudy LMS Watermarks Template Key.36 *37 * @var string38 */39 protected $ms_lms_watermarks_template_key = '';36 /** 37 * MasterStudy LMS Watermarks Template Key. 38 * 39 * @var string 40 */ 41 protected $ms_lms_watermarks_template_key = ''; 40 42 41 43 /** … … 65 67 */ 66 68 private function setup( $core, $plugin_info ) { 67 self::$plugin_info = $plugin_info;68 self::$core = $core;69 $this->ms_lms_watermarks_template_key = self::$plugin_info['prefix'] . '-ms-lms-watermarks-template';69 self::$plugin_info = $plugin_info; 70 self::$core = $core; 71 $this->ms_lms_watermarks_template_key = self::$plugin_info['prefix'] . '-ms-lms-watermarks-template'; 70 72 } 71 73 … … 95 97 add_meta_box( 96 98 self::$plugin_info['prefix'] . '-pdf-lms-template-select', 97 esc_html__( 'Image Masterstudy LMS Watermark template', ' gpls-wmfw-watermark-image-for-wordpress' ),99 esc_html__( 'Image Masterstudy LMS Watermark template', 'watermark-images-for-wp-and-woo-grandpluginswp' ), 98 100 array( $this, 'img_lms_watermark_template_metabox' ), 99 101 'attachment', 100 102 'side', 101 'high'102 );103 'high' 104 ); 103 105 } 104 106 … … 110 112 */ 111 113 public function img_lms_watermark_template_metabox( $post ) { 112 ?>114 ?> 113 115 <div> 114 116 <span> 115 <?php esc_html_e( 'Select watermarks template', 'gpls-wmfw-watermark-image-for-wordpress' ); ?>116 <span><?php self::$core->pro_btn(); ?></span>117 </span>118 <select class="form-control" name="<?php echo esc_attr( self::$plugin_info['prefix'] . '-selected-watermark-img-template-id' ); ?>">119 <option selected value="0"><?php esc_html_e( '-- Select Watermarks Template --', 'gpls-wmfw-watermark-image-for-wordpress' ); ?></option>120 <?php121 $watermarks_templates = Watermarks_Templates::get_watermark_templates( false );122 foreach ( $watermarks_templates as $watermarks_template ) :123 ?>124 <option value="<?php echo esc_attr( $watermarks_template['id'] ); ?>"><?php echo esc_html( $watermarks_template['title'] ); ?></option>125 <?php endforeach; ?>126 </select>117 <?php esc_html_e( 'Select watermarks template', 'watermark-images-for-wp-and-woo-grandpluginswp' ); ?> 118 <span><?php self::$core->pro_btn(); ?></span> 119 </span> 120 <select class="form-control" name="<?php echo esc_attr( self::$plugin_info['prefix'] . '-selected-watermark-img-template-id' ); ?>"> 121 <option selected value="0"><?php esc_html_e( '-- Select Watermarks Template --', 'watermark-images-for-wp-and-woo-grandpluginswp' ); ?></option> 122 <?php 123 $watermarks_templates = Watermarks_Templates::get_watermark_templates( false ); 124 foreach ( $watermarks_templates as $watermarks_template ) : 125 ?> 126 <option value="<?php echo esc_attr( $watermarks_template['id'] ); ?>"><?php echo esc_html( $watermarks_template['title'] ); ?></option> 127 <?php endforeach; ?> 128 </select> 127 129 </div> 128 130 <?php … … 132 134 /** 133 135 * Check if MasterStudy LMS Plugin is active. 136 * 134 137 * @return bool 135 138 */ … … 137 140 return self::is_plugin_active( 'masterstudy-lms-learning-management-system/masterstudy-lms-learning-management-system.php' ); 138 141 } 139 140 142 } -
watermark-images-for-wp-and-woo-grandpluginswp/trunk/includes/Settings.php
r3145166 r3437768 63 63 * Settings Tab Fields 64 64 * 65 * @var Array65 * @var array 66 66 */ 67 67 protected $fields = array(); … … 101 101 */ 102 102 public function plugin_pro_button( $links ) { 103 $links[] = '<a target="_blank" href="' . esc_url _raw( self::$plugin_info['pro_link'] ) . '"><b style="color:#F00;">' . esc_html__( 'Premium', 'watermark-images-for-wp-and-woo-grandpluginswp' ) . '</b></a>';103 $links[] = '<a target="_blank" href="' . esc_url( self::$plugin_info['pro_link'] ) . '"><b style="color:#F00;">' . esc_html__( 'Premium', 'watermark-images-for-wp-and-woo-grandpluginswp' ) . '</b></a>'; 104 104 return $links; 105 105 } … … 163 163 $uploads = wp_upload_dir(); 164 164 $fonts_path = trailingslashit( $uploads['basedir'] ) . trailingslashit( self::$plugin_info['name'] ); 165 $font_file = $_FILES['file']; 165 $font_file = $_FILES['file']; // phpcs:ignore WordPress.Security.ValidatedSanitizedInput.InputNotSanitized 166 166 $font_file_name = sanitize_text_field( wp_unslash( $font_file['name'] ) ); 167 167 $font_file_ext = pathinfo( $font_file['name'], PATHINFO_EXTENSION ); … … 170 170 sprintf( 171 171 /* translators: 1: upload_max_filesize, 2: php.ini */ 172 esc_html__( 'The uploaded file exceeds the %1$s directive in %2$s.' ),172 esc_html__( 'The uploaded file exceeds the %1$s directive in %2$s.', 'watermark-images-for-wp-and-woo-grandpluginswp' ), 173 173 'upload_max_filesize', 174 174 'php.ini' … … 176 176 sprintf( 177 177 /* translators: %s: MAX_FILE_SIZE */ 178 esc_html__( 'The uploaded file exceeds the %s directive that was specified in the HTML form.' ),178 esc_html__( 'The uploaded file exceeds the %s directive that was specified in the HTML form.', 'watermark-images-for-wp-and-woo-grandpluginswp' ), 179 179 'MAX_FILE_SIZE' 180 180 ), 181 esc_html__( 'The uploaded file was only partially uploaded.' ),182 esc_html__( 'No file was uploaded.' ),181 esc_html__( 'The uploaded file was only partially uploaded.', 'watermark-images-for-wp-and-woo-grandpluginswp' ), 182 esc_html__( 'No file was uploaded.', 'watermark-images-for-wp-and-woo-grandpluginswp' ), 183 183 '', 184 esc_html__( 'Missing a temporary folder.' ),185 esc_html__( 'Failed to write file to disk.' ),186 esc_html__( 'File upload stopped by extension.' ),184 esc_html__( 'Missing a temporary folder.', 'watermark-images-for-wp-and-woo-grandpluginswp' ), 185 esc_html__( 'Failed to write file to disk.', 'watermark-images-for-wp-and-woo-grandpluginswp' ), 186 esc_html__( 'File upload stopped by extension.', 'watermark-images-for-wp-and-woo-grandpluginswp' ), 187 187 ); 188 188 $ttf_mime_types = array( … … 252 252 finfo_close( $finfo ); 253 253 } else { 254 $mime_type = @mime_content_type( $font_file['tmp_name'] ); 254 $mime_type = @mime_content_type( $font_file['tmp_name'] ); // phpcs:ignore WordPress.PHP.NoSilencedErrors.Discouraged 255 255 } 256 256 … … 278 278 // Move the file to the plugin fonts folder. 279 279 $new_font_file = $fonts_path . $font_file_name; 280 $moved_new_file = @move_uploaded_file( $font_file['tmp_name'], $new_font_file ); 280 $moved_new_file = @move_uploaded_file( $font_file['tmp_name'], $new_font_file ); // phpcs:ignore WordPress.PHP.NoSilencedErrors.Discouraged 281 281 282 282 if ( false === $moved_new_file ) { … … 285 285 'result' => false, 286 286 'status' => 'error', 287 /* translators: Target PATH */ 287 288 'message' => sprintf( esc_html__( 'The uploaded file could not be moved to %s.', 'watermark-images-for-wp-and-woo-grandpluginswp' ), $new_font_file ), 288 289 ) … … 316 317 */ 317 318 public function settings_link( $links ) { 318 $links[] = '<a href="' . esc_url _raw( admin_url( 'upload.php?page=' . self::$plugin_info['options_page'] ) ) . '">' . esc_html__( 'GIF Editor' ) . '</a>';319 $links[] = '<a href="' . esc_url( admin_url( 'upload.php?page=' . self::$plugin_info['options_page'] ) ) . '">' . esc_html__( 'Settings', 'watermark-images-for-wp-and-woo-grandpluginswp' ) . '</a>'; 319 320 return $links; 320 321 } … … 361 362 */ 362 363 public function is_settings_page( $tab = '' ) { 363 if ( ! empty( $_GET['page'] ) && s elf::$plugin_info['options_page'] === sanitize_text_field( wp_unslash( $_GET['page'] ) ) ) {364 if ( ! empty( $_GET['page'] ) && sanitize_text_field( wp_unslash( $_GET['page'] ) ) === self::$plugin_info['options_page'] ) { // phpcs:ignore WordPress.Security.NonceVerification.Recommended 364 365 if ( ! empty( $tab ) ) { 365 if ( ! empty( $_GET['tab'] ) && ( sanitize_text_field( wp_unslash( $_GET['tab'] ) ) === $tab ) ) { 366 if ( ! empty( $_GET['tab'] ) && ( sanitize_text_field( wp_unslash( $_GET['tab'] ) ) === $tab ) ) { // phpcs:ignore WordPress.Security.NonceVerification.Recommended 366 367 return true; 367 368 } else { -
watermark-images-for-wp-and-woo-grandpluginswp/trunk/includes/Utils/WatermarkUtilsTrait.php
r3145166 r3437768 40 40 41 41 $dynamic_keys['wp_user'] = array( 42 'title' => esc_html__( 'User data', ' gpls-wmfw-watermark-image-for-wordpress' ),42 'title' => esc_html__( 'User data', 'watermark-images-for-wp-and-woo-grandpluginswp' ), 43 43 'prefix' => 'wp_user_', 44 44 'keys' => $user_data, … … 65 65 } 66 66 $dynamic_keys['woo_order'] = array( 67 'title' => esc_html__( 'Woo order data', ' gpls-wmfw-watermark-image-for-wordpress' ),67 'title' => esc_html__( 'Woo order data', 'watermark-images-for-wp-and-woo-grandpluginswp' ), 68 68 'prefix' => 'woo_order_', 69 69 'keys' => $order_data_formatted, … … 87 87 } 88 88 $dynamic_keys['woo_customer'] = array( 89 'title' => esc_html__( 'Woo Customer data', ' gpls-wmfw-watermark-image-for-wordpress' ),89 'title' => esc_html__( 'Woo Customer data', 'watermark-images-for-wp-and-woo-grandpluginswp' ), 90 90 'prefix' => 'woo_customer_', 91 91 'keys' => $customer_data_formatted, -
watermark-images-for-wp-and-woo-grandpluginswp/trunk/includes/WooImageWatermarker.php
r3145166 r3437768 8 8 /** 9 9 * Woo Downloadable Image Watermarker Class. 10 *11 10 */ 12 11 class WooImageWatermark { … … 21 20 protected static $instance = null; 22 21 23 /** 24 * Core 25 * @var Core 26 */ 27 protected static $core; 22 /** 23 * Core 24 * 25 * @var Core 26 */ 27 protected static $core; 28 28 29 /** 30 * Plugin Info. 31 * @var array 32 */ 33 protected static $plugin_info; 29 /** 30 * Plugin Info. 31 * 32 * @var array 33 */ 34 protected static $plugin_info; 34 35 35 36 /** … … 59 60 */ 60 61 private function setup( $core, $plugin_info ) { 61 self::$core = $core;62 self::$plugin_info = $plugin_info;63 }62 self::$core = $core; 63 self::$plugin_info = $plugin_info; 64 } 64 65 65 66 /** … … 69 70 */ 70 71 private function hooks() { 71 // Password Protected IMGs Meta.72 // Password Protected IMGs Meta. 72 73 add_action( 'woocommerce_product_options_downloads', array( $this, 'watermark_img_template_select' ), PHP_INT_MAX ); 73 74 } 74 75 75 /** 76 * Watermark Image Template Select. 77 * @return void 78 */ 79 public function watermark_img_template_select() { 76 /** 77 * Watermark Image Template Select. 78 * 79 * @return void 80 */ 81 public function watermark_img_template_select() { 80 82 global $post; 81 $template_id = get_post_meta( $post->ID, self::$plugin_info['prefix'] . '-selected-watermark-img-template-id', true );83 $template_id = get_post_meta( $post->ID, self::$plugin_info['prefix'] . '-selected-watermark-img-template-id', true ); 82 84 ?> 83 85 <div class="<?php echo esc_attr( self::$plugin_info['classes_prefix'] . '-disabled' ); ?>"> 84 86 <div style="border:2px solid #EEE;padding:10px;margin:10px;display:block;overflow:hidden;" class="<?php echo esc_attr( self::$plugin_info['prefix'] . '-watermarked-downloadable-images-wrapper' ); ?>"> 85 <h3><?php esc_html_e( 'Watermark Downloadable Images [GrandPlugins]', ' gpls-wmfw-watermark-image-for-wordpress' ); ?> <span><?php self::$core->pro_btn(); ?></span></h3>87 <h3><?php esc_html_e( 'Watermark Downloadable Images [GrandPlugins]', 'watermark-images-for-wp-and-woo-grandpluginswp' ); ?> <span><?php self::$core->pro_btn(); ?></span></h3> 86 88 <div class="wrapper"> 87 89 <div class="input-field" style="overflow:hidden;"> 88 90 <!-- 1| Watermarks Template Selection --> 89 91 <div class="mb-5"> 90 <h5 class="form-label"><?php esc_html_e( 'Select Watermarks Template', ' gpls-wmfw-watermark-image-for-wordpress' ); ?></h5>92 <h5 class="form-label"><?php esc_html_e( 'Select Watermarks Template', 'watermark-images-for-wp-and-woo-grandpluginswp' ); ?></h5> 91 93 <select class="form-control" name="<?php echo esc_attr( self::$plugin_info['prefix'] . '-selected-watermark-img-template-id' ); ?>"> 92 <option selected value="0"><?php esc_html_e( '-- Select Watermarks Template --', ' gpls-wmfw-watermark-image-for-wordpress' ); ?></option>94 <option selected value="0"><?php esc_html_e( '-- Select Watermarks Template --', 'watermark-images-for-wp-and-woo-grandpluginswp' ); ?></option> 93 95 <?php 94 96 $watermarks_templates = Watermarks_Templates::get_watermark_templates( false ); … … 104 106 </div> 105 107 <?php 106 } 107 108 } 108 109 } -
watermark-images-for-wp-and-woo-grandpluginswp/trunk/includes/class-apply-watermarks-queries.php
r2932599 r3437768 85 85 * @param array $cpt_options_arr 86 86 * @param array $terms 87 * @return void87 * @return array 88 88 */ 89 89 private static function get_cpt_for_terms( $cpt_name, $cpt_options_arr, $terms = array() ) { … … 108 108 109 109 foreach ( $terms[ $cpt_name ] as $taxonomy_name => $taxonomy_terms_arr ) : 110 $cpt_ids = $wpdb->get_col( 111 "SELECT 110 $sql = "SELECT 112 111 p.id 113 112 FROM … … 125 124 AND 126 125 tt.term_id IN ('" . implode( "','", $taxonomy_terms_arr ) . "') 127 " 128 );126 "; 127 $cpt_ids = $wpdb->get_col( $sql ); // phpcs:ignore WordPress.DB.PreparedSQL.NotPrepared, WordPress.DB.DirectDatabaseQuery.NoCaching, WordPress.DB.DirectDatabaseQuery.DirectQuery, WordPress.DB.PreparedSQLPlaceholders.QuotedSimplePlaceholder 129 128 endforeach; 130 129 … … 148 147 {$wpdb->prefix}posts p 149 148 WHERE 150 p.post_type = '{$cpt_name}' 151 "; 149 p.post_type = '{$cpt_name}'"; 152 150 153 151 if ( ! empty( $cpt_options_arr['statuses'] ) ) { … … 173 171 } 174 172 175 $cpts_ids = $wpdb->get_col( $query ); 173 $cpts_ids = $wpdb->get_col( $query ); // phpcs:ignore WordPress.DB.PreparedSQL.NotPrepared, WordPress.DB.DirectDatabaseQuery.NoCaching, WordPress.DB.DirectDatabaseQuery.DirectQuery, WordPress.DB.PreparedSQLPlaceholders.QuotedSimplePlaceholder 176 174 return $cpts_ids; 177 175 } … … 252 250 pm.meta_key = '_product_image_gallery'"; 253 251 254 $attachments = $wpdb->get_col( $query ); 252 $attachments = $wpdb->get_col( $query ); // phpcs:ignore WordPress.DB.PreparedSQL.NotPrepared, WordPress.DB.DirectDatabaseQuery.NoCaching, WordPress.DB.DirectDatabaseQuery.DirectQuery, WordPress.DB.PreparedSQLPlaceholders.QuotedSimplePlaceholder 255 253 256 254 return $attachments; … … 270 268 ) 271 269 ), 272 function ( $cpt_slug ) use ( $pypass_cpts ) {270 function ( $cpt_slug ) use ( $pypass_cpts ) { 273 271 return ! in_array( $cpt_slug, $pypass_cpts ); 274 272 } … … 320 318 public static function get_cpt_statuses( $cpt_slug ) { 321 319 global $wpdb; 322 $statuses = $wpdb->get_col( $wpdb->prepare( "SELECT DISTINCT post_status FROM {$wpdb->prefix}posts WHERE post_type = '%s'", $cpt_slug ) ); 320 $statuses = $wpdb->get_col( $wpdb->prepare( "SELECT DISTINCT post_status FROM {$wpdb->prefix}posts WHERE post_type = '%s'", $cpt_slug ) ); // phpcs:ignore WordPress.DB.PreparedSQL.NotPrepared, WordPress.DB.DirectDatabaseQuery.NoCaching, WordPress.DB.DirectDatabaseQuery.DirectQuery, WordPress.DB.PreparedSQLPlaceholders.QuotedSimplePlaceholder 323 321 $auto_draft_index = array_search( 'auto-draft', $statuses, true ); 324 322 if ( false !== $auto_draft_index ) { … … 332 330 * 333 331 * @param string $cpt_slug 334 * @return void332 * @return mixed 335 333 */ 336 334 public static function get_cpt_count( $cpt_slug ) { 337 335 global $wpdb; 338 return $wpdb->get_var( $wpdb->prepare( "SELECT COUNT(*) FROM {$wpdb->prefix}posts WHERE post_type = '%s'", $cpt_slug ) ); 336 return $wpdb->get_var( $wpdb->prepare( "SELECT COUNT(*) FROM {$wpdb->prefix}posts WHERE post_type = '%s'", $cpt_slug ) ); // phpcs:ignore WordPress.DB.DirectDatabaseQuery.NoCaching, WordPress.DB.DirectDatabaseQuery.DirectQuery, WordPress.DB.PreparedSQLPlaceholders.QuotedSimplePlaceholder 339 337 } 340 338 … … 361 359 post_date DESC"; 362 360 363 $months = $wpdb->get_results( $query, \ARRAY_A ); 361 $months = $wpdb->get_results( $query, \ARRAY_A ); // phpcs:ignore WordPress.DB.PreparedSQL.NotPrepared, WordPress.DB.DirectDatabaseQuery.NoCaching, WordPress.DB.DirectDatabaseQuery.DirectQuery, WordPress.DB.PreparedSQLPlaceholders.QuotedSimplePlaceholder 364 362 $filtered_months = array(); 365 363 foreach ( $months as $month_arr ) { … … 412 410 p.post_date DESC"; 413 411 414 $cpts_authors = $wpdb->get_results( $query, \ARRAY_A ); 412 $cpts_authors = $wpdb->get_results( $query, \ARRAY_A ); // phpcs:ignore WordPress.DB.PreparedSQL.NotPrepared, WordPress.DB.DirectDatabaseQuery.DirectQuery, WordPress.DB.DirectDatabaseQuery.NoCaching 415 413 foreach ( $cpts_authors as $author ) { 416 414 self::$cpts_author_options[ $author['post_type'] ][] = $author; … … 419 417 ?> 420 418 <select class="cpt-authors-select" data-cpt_type="<?php echo esc_attr( $post_type ); ?>" name="rule_group[<?php echo esc_attr( $post_type ); ?>][<?php echo esc_attr( $counter ); ?>][authors][]" multiple> 421 <option value="">— <?php esc_html_e( 'Select' ); ?> —</option>419 <option value="">— <?php esc_html_e( 'Select', 'watermark-images-for-wp-and-woo-grandpluginswp' ); ?> —</option> 422 420 <?php 423 421 foreach ( (array) self::$cpts_author_options[ $post_type ] as $user ) : 424 $display = sprintf( esc_html__( '%1$s', 'user dropdown' ), $user['display_name'] ); 422 /* translators: User display Name */ 423 $display = sprintf( esc_html__( '%1$s', 'watermark-images-for-wp-and-woo-grandpluginswp' ), $user['display_name'] ); // phpcs:ignore WordPress.WP.I18n.NoEmptyStrings 425 424 ?> 426 425 <option <?php echo esc_attr( in_array( $user['ID'], $selected_authors ) ? 'selected="selected"' : '' ); ?> value="<?php echo esc_attr( $user['ID'] ); ?>"><?php echo esc_html( $display ); ?></option> … … 436 435 * 437 436 * @param array $terms 438 * @return Array437 * @return array 439 438 */ 440 439 public static function filter_terms_ids( $terms, $cpt_names ) { -
watermark-images-for-wp-and-woo-grandpluginswp/trunk/includes/class-apply-watermarks-templates.php
r2932599 r3437768 145 145 */ 146 146 public static function ajax_apply_watermarks_template() { 147 if ( ! empty( $_POST['nonce'] ) && wp_verify_nonce( wp_unslash( $_POST['nonce']), self::$plugin_info['name'] . '-ajax-nonce' ) ) {147 if ( ! empty( $_POST['nonce'] ) && wp_verify_nonce( sanitize_text_field( wp_unslash( $_POST['nonce'] ) ), self::$plugin_info['name'] . '-ajax-nonce' ) ) { 148 148 $errors = array(); 149 149 $step = isset( $_POST['step'] ) ? absint( sanitize_text_field( wp_unslash( $_POST['step'] ) ) ) : 'end'; … … 194 194 $step += 1; 195 195 if ( $step >= $total_steps ) { 196 $message = '<p>' . esc_html__( 'Watermarks Template has been applied successfully on selected images', 'watermark-images-for-wp-and-woo-grandpluginswp' ) . '</p><a class ="button" target="_blank" href="' . esc_url _raw( admin_url( 'upload.php' ) ) . '" ><strong>' . esc_html__( 'Media Library', 'watermark-images-for-wp-and-woo-grandpluginswp' ) . '</strong></a> ';196 $message = '<p>' . esc_html__( 'Watermarks Template has been applied successfully on selected images', 'watermark-images-for-wp-and-woo-grandpluginswp' ) . '</p><a class ="button" target="_blank" href="' . esc_url( admin_url( 'upload.php' ) ) . '" ><strong>' . esc_html__( 'Media Library', 'watermark-images-for-wp-and-woo-grandpluginswp' ) . '</strong></a> '; 197 197 } else { 198 198 $message = ''; … … 361 361 $link_start = sprintf( 362 362 '<a target="_blank" href="%s" aria-label="%s">', 363 esc_url _raw( get_edit_post_link( $post->ID ) ),363 esc_url( get_edit_post_link( $post->ID ) ), 364 364 /* translators: %s: Attachment title. */ 365 esc_attr( sprintf( esc_html__( '“%s” (Edit)' ), $title ) )365 esc_attr( sprintf( esc_html__( '“%s” (Edit)', 'watermark-images-for-wp-and-woo-grandpluginswp' ), $title ) ) 366 366 ); 367 367 $link_end = '</a>'; … … 385 385 ?> 386 386 <p class="filename"> 387 <span class="screen-reader-text"><?php esc_html_e( 'File name:' ); ?> </span>387 <span class="screen-reader-text"><?php esc_html_e( 'File name:', 'watermark-images-for-wp-and-woo-grandpluginswp' ); ?> </span> 388 388 <?php 389 389 $file = get_attached_file( $post->ID ); … … 411 411 $parent_type = get_post_type_object( $parent->post_type ); 412 412 if ( $parent_type && $parent_type->show_ui && current_user_can( 'edit_post', $post->post_parent ) ) { 413 printf( '<strong><a target="_blank" href="%s">%s</a></strong>', esc_url _raw( get_edit_post_link( $post->post_parent ) ), esc_html( $title ) );413 printf( '<strong><a target="_blank" href="%s">%s</a></strong>', esc_url( get_edit_post_link( $post->post_parent ) ), esc_html( $title ) ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped 414 414 } elseif ( $parent_type && current_user_can( 'read_post', $post->post_parent ) ) { 415 printf( '<strong>%s</strong>', $title ); 415 printf( '<strong>%s</strong>', $title ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped 416 416 } else { 417 esc_html_e( '(Private post)' );417 esc_html_e( '(Private post)', 'watermark-images-for-wp-and-woo-grandpluginswp' ); 418 418 } 419 419 } else { 420 esc_html_e( '(Unattached)' );420 esc_html_e( '(Unattached)', 'watermark-images-for-wp-and-woo-grandpluginswp' ); 421 421 } 422 422 } … … 433 433 printf( 434 434 '<a target="_blank" href="%s">%s</a>', 435 esc_url _raw( add_query_arg( array( 'author' => get_the_author_meta( 'ID', $post->post_author ) ), 'upload.php' ) ),435 esc_url( add_query_arg( array( 'author' => get_the_author_meta( 'ID', $post->post_author ) ), 'upload.php' ) ), 436 436 get_the_author_meta( 'nicename', $post->post_author ) 437 437 ); … … 450 450 } 451 451 if ( '0000-00-00 00:00:00' === $post->post_date ) { 452 $h_time = esc_html__( 'Unpublished' );452 $h_time = esc_html__( 'Unpublished', 'watermark-images-for-wp-and-woo-grandpluginswp' ); 453 453 } else { 454 454 $time = get_post_timestamp( $post ); … … 457 457 if ( $time && $time_diff > 0 && $time_diff < DAY_IN_SECONDS ) { 458 458 /* translators: %s: Human-readable time difference. */ 459 $h_time = sprintf( esc_html__( '%s ago' ), human_time_diff( $time ) );459 $h_time = sprintf( esc_html__( '%s ago', 'watermark-images-for-wp-and-woo-grandpluginswp' ), human_time_diff( $time ) ); 460 460 } else { 461 $h_time = get_the_time( esc_html__( 'Y/m/d' ), $post );461 $h_time = get_the_time( 'Y/m/d', $post ); 462 462 } 463 463 } -
watermark-images-for-wp-and-woo-grandpluginswp/trunk/includes/class-gd-image.php
r2966022 r3437768 217 217 return new \WP_Error( 218 218 self::$plugin_info['name'] . '-failed-image-resource', 219 esc_html__( 'Failed to detect image mime type', ' gpls-wmfw-watermark-image-for-wordpress' )219 esc_html__( 'Failed to detect image mime type', 'watermark-images-for-wp-and-woo-grandpluginswp' ) 220 220 ); 221 221 } … … 225 225 ( 'image/webp' === wp_get_image_mime( $img_path ) ) 226 226 ) { 227 $gdimg = @imagecreatefromwebp( $img_path ); 227 $gdimg = @imagecreatefromwebp( $img_path ); // phpcs:ignore WordPress.PHP.NoSilencedErrors.Discouraged 228 228 } else { 229 $gdimg = @imagecreatefromstring( file_get_contents( $img_path ) ); 229 $gdimg = @imagecreatefromstring( file_get_contents( $img_path ) ); // phpcs:ignore WordPress.PHP.NoSilencedErrors.Discouraged 230 230 } 231 231 … … 233 233 return new \WP_Error( 234 234 self::$plugin_info['name'] . '-failed-image-resource', 235 esc_html__( 'Image format is not supported', ' gpls-wmfw-watermark-image-for-wordpress' )235 esc_html__( 'Image format is not supported', 'watermark-images-for-wp-and-woo-grandpluginswp' ) 236 236 ); 237 237 } -
watermark-images-for-wp-and-woo-grandpluginswp/trunk/includes/class-image-edit-page.php
r2932599 r3437768 108 108 </div> 109 109 <div class="thumbnail-wrapper flex-grow-1 d-flex justify-contnet-center align-items-center w-100 flex-column"> 110 <a class="thumbnail border" href="<?php echo esc_url _raw( $size_url ); ?>" target="_blank">111 <img src="<?php echo esc_url _raw( $size_url ); ?>" alt="image-subsize" class="card-img-bottom">110 <a class="thumbnail border" href="<?php echo esc_url( $size_url ); ?>" target="_blank"> 111 <img src="<?php echo esc_url( $size_url ); ?>" alt="image-subsize" class="card-img-bottom"> 112 112 </a> 113 113 </div> … … 131 131 */ 132 132 public static function restore_original( $backup_path, $img_path ) { 133 return @copy( $backup_path, $img_path ); 133 return @copy( $backup_path, $img_path ); // phpcs:ignore WordPress.PHP.NoSilencedErrors.Discouraged 134 134 } 135 135 … … 139 139 * @param string $original_path Original Image FULL PATH. 140 140 * @param int $attachment_id Attachment Post ID. 141 * @return boolean|\WP_Error141 * @return mixed 142 142 */ 143 143 public static function restore_scaled( $original_path, $attachment_id ) { -
watermark-images-for-wp-and-woo-grandpluginswp/trunk/includes/class-image-watermark.php
r2932599 r3437768 102 102 return new \WP_Error( 103 103 self::$plugin_info['name'] . '-unsupported-type', 104 esc_html( sprintf( esc_html__( 'Image format is not supported : %s' ), $img['path'] ) ) 104 /* translators: Image format */ 105 esc_html( sprintf( esc_html__( 'Image format is not supported : %s', 'watermark-images-for-wp-and-woo-grandpluginswp' ), $img['path'] ) ) 105 106 ); 106 107 } … … 139 140 } 140 141 141 $img_mime_type = @mime_content_type( $this->img['path'] ); 142 $img_mime_type = @mime_content_type( $this->img['path'] ); // phpcs:ignore WordPress.PHP.NoSilencedErrors.Discouraged 142 143 if ( ! $img_mime_type ) { 143 144 return false; … … 238 239 * Force Cache Busting for images after adding watermarks to purge the browser cached version. 239 240 * 240 * @param string$image Image Array ( 0 => URL, 1 => width, 2 => height, 3 => is a resized image boolean ).241 * @param array $image Image Array ( 0 => URL, 1 => width, 2 => height, 3 => is a resized image boolean ). 241 242 * @param int $attachment_id Attachment Post ID. 242 243 * @param int $size Target Size. … … 245 246 */ 246 247 public static function force_cache_bust_in_media_listing( $image, $attachment_id, $size, $icon ) { 247 if ( is_array( $image ) && ! empty( $_SERVER['HTTP_REFERER'] ) && ( admin_url( 'upload.php' ) === esc_url( strtok( wp_unslash( $_SERVER['HTTP_REFERER'] ), '?' ) ) ) ) { 248 if ( is_array( $image ) && ! empty( $_SERVER['HTTP_REFERER'] ) && ( admin_url( 'upload.php' ) === esc_url( strtok( wp_unslash( $_SERVER['HTTP_REFERER'] ), '?' ) ) ) ) { // phpcs:ignore WordPress.Security.ValidatedSanitizedInput.InputNotSanitized 248 249 $image[0] = add_query_arg( 249 250 array( … … 265 266 */ 266 267 public static function force_cache_bust_after_watermarking( $url, $post_id ) { 267 if ( ! empty( $url ) && ! empty( $_REQUEST[ self::$plugin_info['classes_prefix'] . '-force-img-refresh' ] ) || ( ( ! empty( $_SERVER['HTTP_REFERER'] ) ) && admin_url( 'upload.php' ) === esc_url( strtok( wp_unslash( $_SERVER['HTTP_REFERER'] ), '?' ) ) ) ) { 268 if ( ! empty( $url ) && ! empty( $_REQUEST[ self::$plugin_info['classes_prefix'] . '-force-img-refresh' ] ) || ( ( ! empty( $_SERVER['HTTP_REFERER'] ) ) && admin_url( 'upload.php' ) === esc_url( strtok( wp_unslash( $_SERVER['HTTP_REFERER'] ), '?' ) ) ) ) { // phpcs:ignore WordPress.Security.NonceVerification.Recommended, WordPress.Security.ValidatedSanitizedInput.InputNotSanitized 268 269 $url = add_query_arg( 269 270 array( … … 280 281 * Initialize the watermarks images sources. 281 282 * 282 * @return false|\WP_Error283 * @return \GdImage|\WP_Error 283 284 */ 284 285 public function get_img_watermark_resource( &$watermark ) { … … 346 347 self::clear_image_resource( $watermark_resource ); 347 348 } elseif ( 'text' === $watermark['type'] ) { 348 // TODO: maybe used later!349 // $watermark = $this->scale_text_watermarks( $watermark );350 349 $this->add_text_watermark( $image_details['resource'], $watermark ); 351 350 } … … 398 397 ?>@font-face { 399 398 font-family: "<?php echo esc_attr( $font_family_name ); ?>"; 400 src: url( '<?php echo esc_url _raw( $font['url'] ); ?>' ) format('truetype');399 src: url( '<?php echo esc_url( $font['url'] ); ?>' ) format('truetype'); 401 400 } 402 401 <?php … … 416 415 public static function add_watermark_chosen_size_to_js_object( $response, $attachment, $meta ) { 417 416 // Check if its auto apply watermarks, force refresh link. 418 if ( ( ! empty( $GLOBALS[ self::$plugin_info['name'] . '-is-auto-apply-watermarks-template' ] ) && ! empty( $response['type'] ) && ( 'image' === $response['type'] ) ) || ( ! empty( $_SERVER['HTTP_REFERER'] ) && admin_url( 'upload.php' ) === esc_url( strtok( wp_unslash( $_SERVER['HTTP_REFERER'] ), '?' ) ) ) ) { 417 if ( ( ! empty( $GLOBALS[ self::$plugin_info['name'] . '-is-auto-apply-watermarks-template' ] ) && ! empty( $response['type'] ) && ( 'image' === $response['type'] ) ) || ( ! empty( $_SERVER['HTTP_REFERER'] ) && admin_url( 'upload.php' ) === esc_url( strtok( wp_unslash( $_SERVER['HTTP_REFERER'] ), '?' ) ) ) ) { // phpcs:ignore WordPress.Security.ValidatedSanitizedInput.InputNotSanitized 419 418 // cache bust refresh. 420 419 $cache_bust_refresh = wp_generate_password( 5, false, false ); -
watermark-images-for-wp-and-woo-grandpluginswp/trunk/includes/class-image.php
r2932599 r3437768 36 36 self::$plugin_info['name'] . '-get-image-resource-error', 37 37 sprintf( 38 /* translators: Image PATH */ 38 39 esc_html__( 'Image file does not exist %s', 'watermark-images-for-wp-and-woo-grandpluginswp' ), 39 40 $img_path … … 74 75 $original_full_path = trailingslashit( $uploads['basedir'] ) . $original_img_relative_path; 75 76 // check if the original exists. 76 if ( @file_exists( $original_full_path ) ) { 77 if ( @file_exists( $original_full_path ) ) { // phpcs:ignore WordPress.PHP.NoSilencedErrors.Discouraged 77 78 $img_details['scaled_path'] = get_attached_file( $attachment_id ); 78 79 $img_relative_path = $original_img_relative_path; … … 97 98 return new \WP_Error( 98 99 self::$plugin_info['name'] . '-attachment-subsize-not-found', 100 /* translators: Image file subsize name */ 99 101 sprintf( esc_html__( 'Image file sub-size: %s not found!', 'watermark-images-for-wp-and-woo-grandpluginswp' ), $img_size_name ) 100 102 ); … … 104 106 return new \WP_Error( 105 107 self::$plugin_info['name'] . '-attachment-file-not-found', 108 /* translators: Image file name */ 106 109 sprintf( esc_html__( 'image file %s not found!', 'watermark-images-for-wp-and-woo-grandpluginswp' ), $img_file_name ) 107 110 ); -
watermark-images-for-wp-and-woo-grandpluginswp/trunk/includes/class-imagick-image.php
r2966022 r3437768 212 212 return new \WP_Error( 213 213 self::$plugin_info['name'] . '-imagick-failed-img-resource', 214 esc_html__( 'Image type is not supported' )214 esc_html__( 'Image type is not supported', 'watermark-images-for-wp-and-woo-grandpluginswp' ) 215 215 ); 216 216 } -
watermark-images-for-wp-and-woo-grandpluginswp/trunk/includes/class-single-apply-watermarks.php
r2932599 r3437768 50 50 51 51 // Single Apply Page. 52 if ( ! empty( $_GET['page'] ) && s elf::$plugin_info['single_apply_page'] === sanitize_text_field( wp_unslash( $_GET['page'] ) )) {52 if ( ! empty( $_GET['page'] ) && sanitize_text_field( wp_unslash( $_GET['page'] ) ) === self::$plugin_info['single_apply_page'] ) { 53 53 wp_enqueue_style( self::$plugin_info['name'] . '-settings-menu-bootstrap-style', self::$core->core_assets_lib( 'bootstrap', 'css' ), array(), self::$plugin_info['version'], 'all' ); 54 54 wp_enqueue_style( self::$plugin_info['name'] . '-watermark-template-css', self::$plugin_info['url'] . 'assets/dist/css/admin/admin-styles.min.css', array(), self::$plugin_info['version'], 'all' ); … … 107 107 'search_term' => esc_html__( 'Search Term', 'watermark-images-for-wp-and-woo-grandpluginswp' ), 108 108 'search_terms' => esc_html__( 'Search Terms', 'watermark-images-for-wp-and-woo-grandpluginswp' ), 109 /* translators: Maximum allowed watermarks */ 109 110 'limited_watermarks_notice' => sprintf( esc_html__( 'Maximum %d watermarks can be added in Free Version', 'watermark-images-for-wp-and-woo-grandpluginswp' ), Watermarks_Templates::$watermarks_limit ), 110 111 'remove_watermark' => esc_html__( 'You are about to remove a watermark, confirm?', 'watermark-images-for-wp-and-woo-grandpluginswp' ), … … 122 123 */ 123 124 public static function ajax_single_apply_watermarks() { 124 if ( ! empty( $_POST['nonce'] ) && wp_verify_nonce( wp_unslash( $_POST['nonce'] ), self::$plugin_info['name'] . '-ajax-nonce' ) ) {125 if ( ! empty( $_POST['nonce'] ) && wp_verify_nonce( sanitize_text_field( wp_unslash( $_POST['nonce'] ) ), self::$plugin_info['name'] . '-ajax-nonce' ) ) { // phpcs:ignore WordPress.Security.ValidatedSanitizedInput.InputNotSanitized 125 126 $errors = array(); 126 127 $preview_image = ! empty( $_POST['preview_img'] ) ? map_deep( wp_unslash( $_POST['preview_img'] ), 'sanitize_text_field' ) : array(); 127 $watermarks = map_deep( wp_unslash( $_POST['watermarks'] ), 'sanitize_text_field' ); 128 $watermarks = map_deep( wp_unslash( $_POST['watermarks'] ), 'sanitize_text_field' ); // phpcs:ignore WordPress.Security.ValidatedSanitizedInput.InputNotValidated 128 129 $options = ! empty( $_POST['options'] ) ? map_deep( wp_unslash( $_POST['options'] ), 'sanitize_text_field' ) : array(); 129 130 … … 207 208 * @param array $watermarks Watermarks Array. 208 209 * 209 * @return array|int 210 * @return array|int|string 210 211 */ 211 212 private static function single_apply_watermarks( $img, $watermarks, $apply_options ) { … … 256 257 // Overwrite. 257 258 // If original is among the sizes and its scaled, apply the template on scaled image. 258 if ( in_array( 'original', $apply_options['imageSizes'] ) && ! empty( $img_details['scaled_path'] ) && @file_exists( $img_details['scaled_path'] ) ) { 259 if ( in_array( 'original', $apply_options['imageSizes'] ) && ! empty( $img_details['scaled_path'] ) && @file_exists( $img_details['scaled_path'] ) ) { // phpcs:ignore WordPress.PHP.NoSilencedErrors.Discouraged 259 260 $scaled_img_details = Image::get_image_file_details_direct( $img_details['scaled_path'] ); 260 261 … … 265 266 return $errors; 266 267 } 267 $scaled_result = $scaled_watermark_img->draw_watermarks_on_image();268 $scaled_result = $scaled_watermark_img->draw_watermarks_on_image(); 268 269 269 270 $scaled_result = Watermark_Base::save_watermarked_image( $scaled_result['img_string'], $scaled_img_details ); … … 313 314 * Display Image Box after save. 314 315 * 315 * @return void316 * @return string 316 317 */ 317 318 public static function display_img_icon_box( $media_id ) { … … 329 330 <div class="img-media-icon-box card mb-3 w-auto mx-auto border container px-0 py-0"> 330 331 <div class="card-body"> 331 <h5 class="card-title"><a target="_blank" href="<?php echo esc_url _raw( $edit_link ); ?>"><strong><?php echo esc_html( $title ); ?></strong></a></h5>332 <h5 class="card-title"><a target="_blank" href="<?php echo esc_url( $edit_link ); ?>"><strong><?php echo esc_html( $title ); ?></strong></a></h5> 332 333 <p class="card-text mt-4"><?php echo esc_html( wp_basename( $file ) ); ?></p> 333 <a class="mt-3" target="_blank" href="<?php echo esc_url _raw( $edit_link ); ?>"><?php echo wp_kses_post( $thumb ); ?></a>334 <a class="mt-3" target="_blank" href="<?php echo esc_url( $edit_link ); ?>"><?php echo wp_kses_post( $thumb ); ?></a> 334 335 </div> 335 336 </div> -
watermark-images-for-wp-and-woo-grandpluginswp/trunk/includes/class-watermarks-templates.php
r3145166 r3437768 55 55 * @var array 56 56 */ 57 private static $text_watermark_fields = array( 'id', 'type', 'width', 'height', 'title', 'isRepeat', 'centerOffset', 'repeatAxis', 'repeatXAxisOffset', 'repeatYAxisOffset', 'positionSpot', 'positionType', 'absLeft', 'absTop', 'leftPercent', 'topPercent', 'baselineOffset', 'exactWidth', 'botLeft', 'botTop', 'opacity', 'degree', 'color', 'fontsize', 'fontfamily' );57 private static $text_watermark_fields = array( 'id', 'type', 'width', 'height', 'title', 'isRepeat', 'centerOffset', 'repeatAxis', 'repeatXAxisOffset', 'repeatYAxisOffset', 'positionSpot', 'positionType', 'absLeft', 'absTop', 'leftPercent', 'topPercent', 'baselineOffset', 'exactWidth', 'botLeft', 'botTop', 'opacity', 'degree', 'color', 'fontsize', 'fontfamily', 'offsetCorner' ); 58 58 59 59 /** … … 62 62 * @var array 63 63 */ 64 private static $image_watermark_fields = array( 'id', 'type', 'width', 'height', 'imgID', 'isRepeat', 'centerOffset', 'repeatAxis', 'repeatXAxisOffset', 'repeatYAxisOffset', 'positionSpot', 'positionType', 'absLeft', 'absTop', 'leftPercent', 'topPercent', 'url', 'opacity', 'degree' );64 private static $image_watermark_fields = array( 'id', 'type', 'width', 'height', 'imgID', 'isRepeat', 'centerOffset', 'repeatAxis', 'repeatXAxisOffset', 'repeatYAxisOffset', 'positionSpot', 'positionType', 'absLeft', 'absTop', 'leftPercent', 'topPercent', 'url', 'opacity', 'degree', 'offsetCorner' ); 65 65 66 66 /** … … 159 159 160 160 /** 161 * 161 * Limit Watermarks templates. 162 162 * 163 163 * @param array $data … … 181 181 <div> 182 182 <h4><?php esc_html_e( 'You have reached the maximum watermarks templates!', 'watermark-images-for-wp-and-woo-grandpluginswp' ); ?></h4> 183 <h3><?php echo wp_kses_post( esc_html__( 'Upgrade to', 'watermark-images-for-wp-and-woo-grandpluginswp' ) . ' <a href="' . esc_url _raw( self::$plugin_info['pro_link'] ) . '" target="_blank" ><strong style="font-weight:bolder;">' . esc_html( 'Pro' ) . '</strong></a> ' . esc_html__( 'for unlimited watermarks templates', 'watermark-images-for-wp-and-woo-grandpluginswp' ) ); ?></h3>183 <h3><?php echo wp_kses_post( esc_html__( 'Upgrade to', 'watermark-images-for-wp-and-woo-grandpluginswp' ) . ' <a href="' . esc_url( self::$plugin_info['pro_link'] ) . '" target="_blank" ><strong style="font-weight:bolder;">' . esc_html__( 'Pro', 'watermark-images-for-wp-and-woo-grandpluginswp' ) . '</strong></a> ' . esc_html__( 'for unlimited watermarks templates', 'watermark-images-for-wp-and-woo-grandpluginswp' ) ); ?></h3> 184 184 </div> 185 185 <?php 186 186 $limit_msg = ob_get_clean(); 187 wp_die( $limit_msg ); 187 wp_die( $limit_msg ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped 188 188 } 189 189 } … … 202 202 ( is_object( $screen ) && ! is_wp_error( $screen ) && ! empty( $screen->post_type ) && ( 'post' === $screen->base ) && ( $screen->post_type === self::$post_type_key ) ) 203 203 || 204 ( ! empty( $_GET['page'] ) && s elf::$plugin_info['single_apply_page'] === sanitize_text_field( wp_unslash( $_GET['page'] ) ) )204 ( ! empty( $_GET['page'] ) && sanitize_text_field( wp_unslash( $_GET['page'] ) ) === self::$plugin_info['single_apply_page'] ) // phpcs:ignore WordPress.Security.NonceVerification.Recommended 205 205 ) { 206 206 $fonts = Image_Watermark::get_available_fonts( true ); … … 284 284 'search_term' => esc_html__( 'Search Term', 'watermark-images-for-wp-and-woo-grandpluginswp' ), 285 285 'search_terms' => esc_html__( 'Search Terms', 'watermark-images-for-wp-and-woo-grandpluginswp' ), 286 'limited_watermarks_notice' => esc_html__( 'Maximum ' . self::$watermarks_limit . ' watermarks can be added in Free Version', 'watermark-images-for-wp-and-woo-grandpluginswp' ), 286 /* translators: Maximum allowed watermarks */ 287 'limited_watermarks_notice' => sprintf( esc_html__( 'Maximum %d watermarks can be added in Free Version', 'watermark-images-for-wp-and-woo-grandpluginswp' ), self::$watermarks_limit ), 287 288 'remove_watermark' => esc_html__( 'You are about to remove a watermark, confirm?', 'watermark-images-for-wp-and-woo-grandpluginswp' ), 288 289 ), … … 332 333 $data = self::$default_metadata; 333 334 334 if ( ! empty( $_POST['action'] ) && 'inline-save' === sanitize_text_field( wp_unslash( $_POST['action'] ) ) ) { 335 if ( ! empty( $_POST['action'] ) && 'inline-save' === sanitize_text_field( wp_unslash( $_POST['action'] ) ) ) { // phpcs:ignore WordPress.Security.NonceVerification.Missing 335 336 return; 336 337 } 337 338 338 339 // Preview Image. 339 if ( ! empty( $_POST['selected-preview-img-id'] ) ) { 340 $data['preview_img_id'] = absint( sanitize_text_field( wp_unslash( $_POST['selected-preview-img-id'] ) ) ); 340 if ( ! empty( $_POST['selected-preview-img-id'] ) ) { // phpcs:ignore WordPress.Security.NonceVerification.Missing 341 $data['preview_img_id'] = absint( sanitize_text_field( wp_unslash( $_POST['selected-preview-img-id'] ) ) ); // phpcs:ignore WordPress.Security.NonceVerification.Missing 341 342 } 342 343 343 344 // Watermarks. 344 if ( ! empty( $_POST['watermarks'] ) && is_array( $_POST['watermarks'] ) ) { 345 $watermarks = wp_unslash( $_POST['watermarks'] ); 345 if ( ! empty( $_POST['watermarks'] ) && is_array( $_POST['watermarks'] ) ) { // phpcs:ignore WordPress.Security.NonceVerification.Missing 346 $watermarks = wp_unslash( $_POST['watermarks'] ); // phpcs:ignore WordPress.Security.NonceVerification.Missing, WordPress.Security.ValidatedSanitizedInput.InputNotSanitized 346 347 foreach ( $watermarks as $watermark ) { 347 348 $watermark = array_map( 'sanitize_text_field', $watermark ); 348 if ( ! empty( $watermark['id'] ) && ! empty( $watermark['type'] ) && in_array( $watermark['type'], self::$watermarks_types ) ) {349 if ( ! empty( $watermark['id'] ) && ! empty( $watermark['type'] ) && in_array( $watermark['type'], self::$watermarks_types, true ) ) { 349 350 $data['watermarks'][ $watermark['id'] ] = array(); 350 351 foreach ( self::${ $watermark['type'] . '_watermark_fields' } as $field ) { … … 360 361 361 362 update_post_meta( $post_id, self::$watermarks_template_meta_key, $data ); 362 363 363 } 364 364 … … 369 369 */ 370 370 public static function ajax_preview_watermarks_template() { 371 if ( ! empty( $_POST['nonce'] ) && wp_verify_nonce( wp_unslash( $_POST['nonce']), self::$plugin_info['name'] . '-ajax-nonce' ) ) {371 if ( ! empty( $_POST['nonce'] ) && wp_verify_nonce( sanitize_text_field( wp_unslash( $_POST['nonce'] ) ), self::$plugin_info['name'] . '-ajax-nonce' ) ) { 372 372 if ( ! empty( $_POST['watermarks'] ) ) { 373 373 $preview_image = ! empty( $_POST['preview_img'] ) ? map_deep( wp_unslash( $_POST['preview_img'] ), 'sanitize_text_field' ) : array(); … … 420 420 if ( is_array( $img ) && ! empty( $img['id'] ) ) { 421 421 $img['path'] = get_attached_file( $img['id'] ); 422 } else { 423 if ( ! $is_preview ) { 422 } elseif ( ! $is_preview ) { 424 423 $img = self::$default_preview_imgs['preview_bg_white']; 425 }426 424 } 427 425 return $img; … … 440 438 return $watermark_img; 441 439 } 442 $result = $watermark_img->draw_watermarks_on_image( true );440 $result = $watermark_img->draw_watermarks_on_image( true ); 443 441 if ( is_wp_error( $result ) ) { 444 442 return $result; … … 479 477 add_meta_box( 480 478 self::$plugin_info['name'] . '-auto-resize-watermarks-template', 481 esc_html__( 'Auto resize watermarks (Pro)', ' gpls-wmfw-watermark-image-for-wordpress' ),479 esc_html__( 'Auto resize watermarks (Pro)', 'watermark-images-for-wp-and-woo-grandpluginswp' ), 482 480 array( get_called_class(), 'auto_resize_watermarks_template' ), 483 481 self::$post_type_key, … … 521 519 <input type="hidden" name="watermarks[<?php echo esc_attr( $watermark_id ); ?>][id]" value="<?php echo esc_attr( $watermark_id ); ?>" /> 522 520 <?php if ( ! empty( 'image' === $watermark_data['type'] ) ) : ?> 523 <input type="hidden" name="watermarks[<?php echo esc_attr( $watermark_id ); ?>][url]" value="<?php echo esc_url _raw( $watermark_data['url'] ); ?>" />521 <input type="hidden" name="watermarks[<?php echo esc_attr( $watermark_id ); ?>][url]" value="<?php echo esc_url( $watermark_data['url'] ); ?>" /> 524 522 <input type="hidden" name="watermarks[<?php echo esc_attr( $watermark_id ); ?>][imgID]" value="<?php echo esc_attr( $watermark_data['imgID'] ); ?>" /> 525 523 <input type="hidden" name="watermarks[<?php echo esc_attr( $watermark_id ); ?>][width]" value="<?php echo esc_attr( $watermark_data['width'] ); ?>" /> … … 534 532 </div> 535 533 <?php 536 $index++;534 ++$index; 537 535 endforeach; 538 536 endif; … … 647 645 * @param int $template_id Watermarks Template Post ID. 648 646 * @param string $return_part Preview Image Part to return. 649 * @return string647 * @return mixed 650 648 */ 651 649 private static function get_watermarks_template_preview_img( $template_id, $return_part ) { … … 705 703 'baselineOffset' => $watermark_data['baselineOffset'], 706 704 'exactWidth' => $watermark_data['exactWidth'], 705 'offsetCorner' => $watermark_data['offsetCorner'], 707 706 'botLeft' => $watermark_data['botLeft'], 708 707 'botTop' => $watermark_data['botTop'], … … 736 735 'url' => $watermark_data['url'], 737 736 'imgID' => $watermark_data['imgID'], 737 'offsetCorner' => $watermark_data['offsetCorner'], 738 738 'styles' => array( 739 739 'opacity' => $watermark_data['opacity'], … … 777 777 /** 778 778 * Watermarks Text meta select. 779 * 779 780 * @return void 780 781 */ … … 784 785 <div class="<?php echo esc_attr( self::$plugin_info['classes_prefix'] . '-disabled' ); ?>"> 785 786 <select class="watermark-dynamic-data-field" data-watermarkid="<?php echo esc_attr( ! empty( $watermark_data ) ? $watermark_data['id'] : '' ); ?>" data-type="dynamic" class="edit edit-dynamic-data-field watermark-dynamic-data-field mt-1"> 786 <option selected value=""><?php esc_html_e( '--- Select data field ---', ' gpls-wmfw-watermark-image-for-wordpress' ); ?></option>787 <option selected value=""><?php esc_html_e( '--- Select data field ---', 'watermark-images-for-wp-and-woo-grandpluginswp' ); ?></option> 787 788 788 789 <?php foreach ( $dynamic_fields as $dynamic_group_key => $group_arr ) : ?> … … 827 828 p.post_date DESC"; 828 829 829 $cpts_authors = $wpdb->get_results( $query, ARRAY_A ); 830 $cpts_authors = $wpdb->get_results( $query, ARRAY_A ); // phpcs:ignore WordPress.DB.PreparedSQL.NotPrepared, WordPress.DB.DirectDatabaseQuery.NoCaching, WordPress.DB.DirectDatabaseQuery.DirectQuery, WordPress.DB.DirectDatabaseQuery.DirectQuery 830 831 foreach ( $cpts_authors as $author ) { 831 832 self::$cpts_author_options[ $author['post_type'] ][] = $author; … … 834 835 ?> 835 836 <select class="cpt-authors-select" data-cpt_type="<?php echo esc_attr( $post_type ); ?>" name="rule_group[<?php echo esc_attr( $post_type ); ?>][<?php echo esc_attr( $counter ); ?>][author]"> 836 <option value="">— <?php esc_html_e( 'Select' ); ?> —</option>837 <option value="">— <?php esc_html_e( 'Select', 'watermark-images-for-wp-and-woo-grandpluginswp' ); ?> —</option> 837 838 <?php 838 839 foreach ( (array) self::$cpts_author_options[ $post_type ] as $user ) : 839 $display = sprintf( esc_html__( '%1$s (%2$s)', 'user dropdown' ), $user['display_name'], $user['user_login'] ); 840 /* translators: %1s user display name, %2s user login */ 841 $display = sprintf( esc_html__( '%1$s (%2$s)', 'watermark-images-for-wp-and-woo-grandpluginswp' ), $user['display_name'], $user['user_login'] ); 840 842 ?> 841 843 <option <?php echo esc_attr( in_array( $user['ID'], $selected_authors ) ? 'selected="selected"' : '' ); ?> value="<?php echo esc_attr( $user['ID'] ); ?>"><?php echo esc_html( $display ); ?></option> -
watermark-images-for-wp-and-woo-grandpluginswp/trunk/languages/watermark-images-for-wp-and-woo-grandpluginswp.pot
r3145166 r3437768 1 # Copyright (C) 202 4GrandPlugins2 # This file is distributed under the same license as the Grand Watermark Images [[GrandPlugins]] plugin.1 # Copyright (C) 2026 GrandPlugins 2 # This file is distributed under the GPLv3. 3 3 msgid "" 4 4 msgstr "" 5 "Project-Id-Version: Grand Watermark Images [[GrandPlugins]] 1.1.7\n"5 "Project-Id-Version: GrandPlugins Image Watermark 1.1.9\n" 6 6 "Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/gpls-wmfw-watermark-images-for-wordpress-pro\n" 7 7 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" … … 10 10 "Content-Type: text/plain; charset=UTF-8\n" 11 11 "Content-Transfer-Encoding: 8bit\n" 12 "POT-Creation-Date: 202 4-09-02T08:29:27+00:00\n"12 "POT-Creation-Date: 2026-01-12T06:59:41+00:00\n" 13 13 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" 14 14 "X-Generator: WP-CLI 2.10.0\n" … … 16 16 17 17 #. Plugin Name of the plugin 18 #: C:\laragon\www\WatermarkImages\wp-content\plugins\gpls-wmfw-watermark-images-for-wordpress-pro\gpls-wmfw-watermark-image-for-wordpress.php19 msgid "Grand Watermark Images [[GrandPlugins]]"18 #: gpls-wmfw-watermark-image-for-wordpress.php 19 msgid "GrandPlugins Image Watermark" 20 20 msgstr "" 21 21 22 22 #. Plugin URI of the plugin 23 #: C:\laragon\www\WatermarkImages\wp-content\plugins\gpls-wmfw-watermark-images-for-wordpress-pro\gpls-wmfw-watermark-image-for-wordpress.php23 #: gpls-wmfw-watermark-image-for-wordpress.php 24 24 msgid "https://grandplugins.com/product/wp-images-watermark/" 25 25 msgstr "" 26 26 27 27 #. Description of the plugin 28 #: C:\laragon\www\WatermarkImages\wp-content\plugins\gpls-wmfw-watermark-images-for-wordpress-pro\gpls-wmfw-watermark-image-for-wordpress.php28 #: gpls-wmfw-watermark-image-for-wordpress.php 29 29 msgid "Add Text and Image watermarks to your images in your WordPress website" 30 30 msgstr "" 31 31 32 32 #. Author of the plugin 33 #: C:\laragon\www\WatermarkImages\wp-content\plugins\gpls-wmfw-watermark-images-for-wordpress-pro\gpls-wmfw-watermark-image-for-wordpress.php33 #: gpls-wmfw-watermark-image-for-wordpress.php 34 34 msgid "GrandPlugins" 35 35 msgstr "" 36 36 37 37 #. Author URI of the plugin 38 #: C:\laragon\www\WatermarkImages\wp-content\plugins\gpls-wmfw-watermark-images-for-wordpress-pro\gpls-wmfw-watermark-image-for-wordpress.php38 #: gpls-wmfw-watermark-image-for-wordpress.php 39 39 msgid "https://profiles.wordpress.org/grandplugins/" 40 msgstr "" 41 42 #. translators: Button title 43 #: core/core.php:255 44 msgid "%s" 45 msgstr "" 46 47 #: core/core.php:282 48 msgid "We would love your feedback. leaving " 49 msgstr "" 50 51 #: core/core.php:284 52 msgid "a review is much appreciated" 53 msgstr "" 54 55 #: core/core.php:291 56 msgid ":) Thanks!" 57 msgstr "" 58 59 #: core/core.php:309 60 #: templates/auto-resize-watermarks-template-metabox.php:9 61 msgid "New" 62 msgstr "" 63 64 #: core/core.php:324 65 msgid "Empower Your Website with Our Additional Plugins" 66 msgstr "" 67 68 #: core/core.php:342 69 #: includes/class-watermarks-templates.php:183 70 msgid "Pro" 71 msgstr "" 72 73 #: core/core.php:347 74 msgid "Free" 75 msgstr "" 76 77 #: core/core.php:354 78 msgid "Browse All Plugins" 79 msgstr "" 80 81 #: includes/class-apply-watermarks-queries.php:419 82 #: includes/class-watermarks-templates.php:837 83 #: templates/apply-watermarks-templates-by-posts-template.php:41 84 #: templates/apply-watermarks-templates-by-posts-template.php:60 85 #: templates/apply-watermarks-templates-by-posts-template.php:79 86 #: templates/apply-watermarks-templates-by-posts-template.php:86 87 #: templates/watermark-specs-template-metabox.php:149 88 #: templates/watermark-specs-template-metabox.php:171 89 msgid "Select" 90 msgstr "" 91 92 #. translators: User display Name 93 #: includes/class-apply-watermarks-queries.php:423 94 msgid "%1$s" 40 95 msgstr "" 41 96 … … 81 136 82 137 #: includes/class-apply-watermarks-templates.php:158 83 #: includes/class-single-apply-watermarks.php:13 4138 #: includes/class-single-apply-watermarks.php:135 84 139 msgid "Apply rules are empty!" 85 140 msgstr "" … … 98 153 99 154 #: includes/class-apply-watermarks-templates.php:216 100 #: includes/class-single-apply-watermarks.php:19 7155 #: includes/class-single-apply-watermarks.php:198 101 156 #: includes/class-watermarks-templates.php:396 102 157 msgid "The link has expired, please refresh the page!" … … 104 159 105 160 #: includes/class-apply-watermarks-templates.php:261 106 #: includes/class-single-apply-watermarks.php:23 5161 #: includes/class-single-apply-watermarks.php:236 107 162 msgid "Failed to create watermarked image file!" 108 163 msgstr "" 109 164 110 165 #: includes/class-apply-watermarks-templates.php:277 111 #: includes/class-single-apply-watermarks.php:25 1166 #: includes/class-single-apply-watermarks.php:252 112 167 msgid "Failed to create watermarked attachment!" 168 msgstr "" 169 170 #. translators: %s: Attachment title. 171 #: includes/class-apply-watermarks-templates.php:365 172 msgid "“%s” (Edit)" 173 msgstr "" 174 175 #: includes/class-apply-watermarks-templates.php:387 176 msgid "File name:" 177 msgstr "" 178 179 #: includes/class-apply-watermarks-templates.php:417 180 msgid "(Private post)" 181 msgstr "" 182 183 #: includes/class-apply-watermarks-templates.php:420 184 msgid "(Unattached)" 185 msgstr "" 186 187 #: includes/class-apply-watermarks-templates.php:452 188 msgid "Unpublished" 189 msgstr "" 190 191 #. translators: %s: Human-readable time difference. 192 #: includes/class-apply-watermarks-templates.php:459 193 msgid "%s ago" 194 msgstr "" 195 196 #: includes/class-gd-image.php:219 197 msgid "Failed to detect image mime type" 198 msgstr "" 199 200 #: includes/class-gd-image.php:235 201 msgid "Image format is not supported" 113 202 msgstr "" 114 203 … … 125 214 msgstr "" 126 215 127 #: includes/class-image.php:38 216 #. translators: Image format 217 #: includes/class-image-watermark.php:105 218 msgid "Image format is not supported : %s" 219 msgstr "" 220 221 #. translators: Image PATH 222 #: includes/class-image.php:39 128 223 msgid "Image file does not exist %s" 129 224 msgstr "" 130 225 131 #: includes/class-image.php:99 226 #. translators: Image file subsize name 227 #: includes/class-image.php:101 132 228 msgid "Image file sub-size: %s not found!" 133 229 msgstr "" 134 230 135 #: includes/class-image.php:106 231 #. translators: Image file name 232 #: includes/class-image.php:109 136 233 msgid "image file %s not found!" 234 msgstr "" 235 236 #: includes/class-imagick-image.php:214 237 msgid "Image type is not supported" 137 238 msgstr "" 138 239 … … 156 257 msgstr "" 157 258 158 #: includes/class-single-apply-watermarks.php:109 159 msgid "Maximum %d watermarks can be added in Free Version" 160 msgstr "" 161 259 #. translators: Maximum allowed watermarks 162 260 #: includes/class-single-apply-watermarks.php:110 163 261 #: includes/class-watermarks-templates.php:287 262 msgid "Maximum %d watermarks can be added in Free Version" 263 msgstr "" 264 265 #: includes/class-single-apply-watermarks.php:111 266 #: includes/class-watermarks-templates.php:288 164 267 msgid "You are about to remove a watermark, confirm?" 165 268 msgstr "" 166 269 167 #: includes/class-single-apply-watermarks.php:14 2270 #: includes/class-single-apply-watermarks.php:143 168 271 msgid "No selected image!" 169 272 msgstr "" 170 273 171 #: includes/class-single-apply-watermarks.php:15 8274 #: includes/class-single-apply-watermarks.php:159 172 275 msgid "No sizes selected!" 173 276 msgstr "" 174 277 175 #: includes/class-single-apply-watermarks.php:18 8278 #: includes/class-single-apply-watermarks.php:189 176 279 msgid "Watermarks have been applied successfully!" 177 280 msgstr "" … … 210 313 msgstr "" 211 314 212 #: includes/class-watermarks-templates.php:286 213 msgid "Maximum " 214 msgstr "" 215 216 #: includes/class-watermarks-templates.php:306 315 #: includes/class-watermarks-templates.php:307 217 316 msgid "Watermarks" 218 317 msgstr "" 219 318 220 #: includes/class-watermarks-templates.php:30 7319 #: includes/class-watermarks-templates.php:308 221 320 msgid "Watermarks Templates" 222 321 msgstr "" 223 322 224 #: includes/class-watermarks-templates.php:30 8323 #: includes/class-watermarks-templates.php:309 225 324 msgid "Watermarks Template" 226 325 msgstr "" 227 326 228 #: includes/class-watermarks-templates.php:31 0327 #: includes/class-watermarks-templates.php:311 229 328 msgid "Watermarks Templates to be applied on selected images" 230 329 msgstr "" 231 330 232 #: includes/class-watermarks-templates.php:46 5331 #: includes/class-watermarks-templates.php:463 233 332 #: templates/single-apply-watermarks-template.php:27 234 333 msgid "Current Watermarks" 235 334 msgstr "" 236 335 237 #: includes/class-watermarks-templates.php:47 3336 #: includes/class-watermarks-templates.php:471 238 337 msgid "Create Watermark Template" 239 338 msgstr "" 240 339 241 #: includes/class-watermarks-templates.php:489 340 #: includes/class-watermarks-templates.php:479 341 msgid "Auto resize watermarks (Pro)" 342 msgstr "" 343 344 #: includes/class-watermarks-templates.php:487 242 345 msgid "Auto Apply Settings (Pro)" 346 msgstr "" 347 348 #: includes/class-watermarks-templates.php:787 349 msgid "--- Select data field ---" 350 msgstr "" 351 352 #. translators: %1s user display name, %2s user login 353 #: includes/class-watermarks-templates.php:841 354 msgid "%1$s (%2$s)" 355 msgstr "" 356 357 #: includes/MasterStudyLMS.php:99 358 msgid "Image Masterstudy LMS Watermark template" 359 msgstr "" 360 361 #: includes/MasterStudyLMS.php:117 362 msgid "Select watermarks template" 363 msgstr "" 364 365 #: includes/MasterStudyLMS.php:121 366 #: includes/WooImageWatermarker.php:94 367 #: templates/bulk-apply-watermarks-template.php:31 368 msgid "-- Select Watermarks Template --" 243 369 msgstr "" 244 370 … … 255 381 msgstr "" 256 382 383 #. translators: 1: upload_max_filesize, 2: php.ini 384 #: includes/Settings.php:172 385 msgid "The uploaded file exceeds the %1$s directive in %2$s." 386 msgstr "" 387 388 #. translators: %s: MAX_FILE_SIZE 389 #: includes/Settings.php:178 390 msgid "The uploaded file exceeds the %s directive that was specified in the HTML form." 391 msgstr "" 392 393 #: includes/Settings.php:181 394 msgid "The uploaded file was only partially uploaded." 395 msgstr "" 396 397 #: includes/Settings.php:182 398 msgid "No file was uploaded." 399 msgstr "" 400 401 #: includes/Settings.php:184 402 msgid "Missing a temporary folder." 403 msgstr "" 404 405 #: includes/Settings.php:185 406 msgid "Failed to write file to disk." 407 msgstr "" 408 409 #: includes/Settings.php:186 410 msgid "File upload stopped by extension." 411 msgstr "" 412 257 413 #: includes/Settings.php:198 258 414 msgid "file upload is failed!" … … 275 431 msgstr "" 276 432 277 #: includes/Settings.php:287 433 #. translators: Target PATH 434 #: includes/Settings.php:288 278 435 msgid "The uploaded file could not be moved to %s." 279 436 msgstr "" 280 437 281 #: includes/Settings.php:30 5438 #: includes/Settings.php:306 282 439 msgid "Font file is added successfully!" 283 440 msgstr "" 284 441 285 #: includes/Settings.php:3 31442 #: includes/Settings.php:319 286 443 #: includes/Settings.php:332 444 #: includes/Settings.php:333 287 445 #: templates/settings-page-template.php:12 288 446 msgid "Settings" 289 447 msgstr "" 290 448 291 #: includes/Settings.php:340292 449 #: includes/Settings.php:341 450 #: includes/Settings.php:342 293 451 msgid "Single Editor" 294 452 msgstr "" 295 453 296 #: includes/Settings.php:349297 454 #: includes/Settings.php:350 455 #: includes/Settings.php:351 298 456 msgid "Bulk Apply" 299 457 msgstr "" 300 458 301 #: templates/apply-watermarks-templates-by-posts-template.php:21 459 #: includes/Utils/WatermarkUtilsTrait.php:42 460 msgid "User data" 461 msgstr "" 462 463 #: includes/Utils/WatermarkUtilsTrait.php:67 464 msgid "Woo order data" 465 msgstr "" 466 467 #: includes/Utils/WatermarkUtilsTrait.php:89 468 msgid "Woo Customer data" 469 msgstr "" 470 471 #: includes/WooImageWatermarker.php:87 472 msgid "Watermark Downloadable Images [GrandPlugins]" 473 msgstr "" 474 475 #: includes/WooImageWatermarker.php:92 476 #: templates/bulk-apply-watermarks-template.php:28 477 msgid "Select Watermarks Template" 478 msgstr "" 479 480 #. translators: Post type name 481 #: templates/apply-watermarks-templates-by-posts-template.php:22 302 482 msgid "No %s yet:" 303 483 msgstr "" 304 484 305 #: templates/apply-watermarks-templates-by-posts-template.php:3 4485 #: templates/apply-watermarks-templates-by-posts-template.php:35 306 486 msgid "Select posts: " 307 487 msgstr "" 308 488 309 #: templates/apply-watermarks-templates-by-posts-template.php:40 310 msgid "Select" 311 msgstr "" 312 313 #: templates/apply-watermarks-templates-by-posts-template.php:49 489 #: templates/apply-watermarks-templates-by-posts-template.php:50 314 490 msgid "Select posts by filters: " 315 491 msgstr "" 316 492 317 #: templates/apply-watermarks-templates-by-posts-template.php:5 7318 #: templates/apply-watermarks-templates-by-posts-template.php:9 4493 #: templates/apply-watermarks-templates-by-posts-template.php:58 494 #: templates/apply-watermarks-templates-by-posts-template.php:95 319 495 msgid "( Any of )" 320 496 msgstr "" 321 497 322 #: templates/apply-watermarks-templates-by-posts-template.php:5 7498 #: templates/apply-watermarks-templates-by-posts-template.php:58 323 499 msgid "Available Status:" 324 500 msgstr "" 325 501 326 #: templates/apply-watermarks-templates-by-posts-template.php:129 502 #: templates/apply-watermarks-templates-by-posts-template.php:71 503 #: templates/apply-watermarks-templates-by-posts-template.php:92 504 #: templates/apply-watermarks-templates-by-posts-template.php:106 505 msgid "and" 506 msgstr "" 507 508 #: templates/apply-watermarks-templates-by-posts-template.php:76 509 msgid "Date range" 510 msgstr "" 511 512 #: templates/apply-watermarks-templates-by-posts-template.php:77 513 msgid "Start date:" 514 msgstr "" 515 516 #: templates/apply-watermarks-templates-by-posts-template.php:84 517 msgid "End date:" 518 msgstr "" 519 520 #: templates/apply-watermarks-templates-by-posts-template.php:95 521 msgid "Authors " 522 msgstr "" 523 524 #: templates/apply-watermarks-templates-by-posts-template.php:130 327 525 msgid "All Posts" 328 526 msgstr "" 329 527 330 #: templates/apply-watermarks-templates-by-posts-template.php:13 0331 #: templates/apply-watermarks-templates-by-posts-template.php:13 8528 #: templates/apply-watermarks-templates-by-posts-template.php:131 529 #: templates/apply-watermarks-templates-by-posts-template.php:139 332 530 msgid "Selected Posts" 333 531 msgstr "" 334 532 335 #: templates/apply-watermarks-templates-by-posts-template.php:15 0336 #: templates/apply-watermarks-templates-by-posts-template.php:2 09533 #: templates/apply-watermarks-templates-by-posts-template.php:151 534 #: templates/apply-watermarks-templates-by-posts-template.php:210 337 535 msgid "Title" 338 536 msgstr "" 339 537 340 #: templates/apply-watermarks-templates-by-posts-template.php:15 3341 #: templates/apply-watermarks-templates-by-posts-template.php:21 2342 #: templates/apply-watermarks-templates-by-posts-template.php:27 7538 #: templates/apply-watermarks-templates-by-posts-template.php:154 539 #: templates/apply-watermarks-templates-by-posts-template.php:213 540 #: templates/apply-watermarks-templates-by-posts-template.php:278 343 541 msgid "Date" 344 542 msgstr "" 345 543 346 #: templates/apply-watermarks-templates-by-posts-template.php:15 6544 #: templates/apply-watermarks-templates-by-posts-template.php:157 347 545 msgid "Actions" 348 546 msgstr "" 349 547 350 #: templates/apply-watermarks-templates-by-posts-template.php:16 8548 #: templates/apply-watermarks-templates-by-posts-template.php:169 351 549 msgid "Select posts to search in" 352 550 msgstr "" 353 551 354 #: templates/apply-watermarks-templates-by-posts-template.php:18 3552 #: templates/apply-watermarks-templates-by-posts-template.php:184 355 553 msgid "items" 356 554 msgstr "" 357 555 358 #: templates/apply-watermarks-templates-by-posts-template.php:205 556 #: templates/apply-watermarks-templates-by-posts-template.php:206 557 #: templates/apply-watermarks-templates-by-posts-template.php:268 359 558 msgid "Select All" 360 559 msgstr "" 361 560 362 #: templates/apply-watermarks-templates-by-posts-template.php:23 3561 #: templates/apply-watermarks-templates-by-posts-template.php:234 363 562 msgid "Images found in selected posts" 364 563 msgstr "" 365 564 366 #: templates/apply-watermarks-templates-by-posts-template.php:24 5565 #: templates/apply-watermarks-templates-by-posts-template.php:246 367 566 msgid "item" 368 567 msgstr "" 369 568 370 #: templates/apply-watermarks-templates-by-posts-template.php:271 569 #: templates/apply-watermarks-templates-by-posts-template.php:254 570 msgid "of" 571 msgstr "" 572 573 #: templates/apply-watermarks-templates-by-posts-template.php:272 371 574 msgid "File" 372 575 msgstr "" 373 576 374 #: templates/apply-watermarks-templates-by-posts-template.php:27 4577 #: templates/apply-watermarks-templates-by-posts-template.php:275 375 578 msgid "Attached to" 376 579 msgstr "" … … 390 593 #: templates/auto-apply-watermarks-template-metabox.php:26 391 594 msgid "Apply the template on images that have min|max width and height." 595 msgstr "" 596 597 #: templates/auto-apply-watermarks-template-metabox.php:30 598 msgid "width" 599 msgstr "" 600 601 #: templates/auto-apply-watermarks-template-metabox.php:33 602 #: templates/auto-apply-watermarks-template-metabox.php:46 603 msgid "Min" 604 msgstr "" 605 606 #: templates/auto-apply-watermarks-template-metabox.php:34 607 #: templates/auto-apply-watermarks-template-metabox.php:47 608 msgid "Max" 609 msgstr "" 610 611 #: templates/auto-apply-watermarks-template-metabox.php:43 612 msgid "height" 392 613 msgstr "" 393 614 … … 444 665 msgstr "" 445 666 667 #: templates/auto-apply-watermarks-template-metabox.php:126 668 msgid "Create in a custom Directory" 669 msgstr "" 670 671 #: templates/auto-apply-watermarks-template-metabox.php:130 672 msgid "Place the watermarked image in custom directory, suitable for custom code snippets to show watermarked images with the same name from a separated directory." 673 msgstr "" 674 675 #: templates/auto-apply-watermarks-template-metabox.php:138 676 msgid "Select sub-sizes to create" 677 msgstr "" 678 679 #: templates/auto-resize-watermarks-template-metabox.php:8 680 msgid "Auto resize watermarks in ( auto / bulk ) watermarking" 681 msgstr "" 682 683 #: templates/auto-resize-watermarks-template-metabox.php:11 684 msgid "Image watermarks size and text watermarks fontsize will be resized proportionally with the image size" 685 msgstr "" 686 687 #: templates/auto-resize-watermarks-template-metabox.php:17 688 msgid "Reference width " 689 msgstr "" 690 691 #: templates/auto-resize-watermarks-template-metabox.php:24 692 msgid "This is the reference width to use watermarks at without resizing." 693 msgstr "" 694 695 #: templates/auto-resize-watermarks-template-metabox.php:30 696 msgid "Image watermark resize percentage" 697 msgstr "" 698 699 #: templates/auto-resize-watermarks-template-metabox.php:38 700 msgid "Image width percentage" 701 msgstr "" 702 703 #: templates/auto-resize-watermarks-template-metabox.php:40 704 msgid "The image watermarks dimensions will be equal to the percentage of the image width." 705 msgstr "" 706 707 #: templates/auto-resize-watermarks-template-metabox.php:54 708 msgid "Auto scale offsets" 709 msgstr "" 710 711 #: templates/auto-resize-watermarks-template-metabox.php:59 712 msgid "Auto scale repeat axis offset." 713 msgstr "" 714 715 #: templates/auto-resize-watermarks-template-metabox.php:60 716 msgid "The repeat offset values in x and y will be scaled up/down depending on the image width relative to the reference width." 717 msgstr "" 718 719 #: templates/auto-resize-watermarks-template-metabox.php:67 720 msgid "Auto resize context" 721 msgstr "" 722 723 #: templates/auto-resize-watermarks-template-metabox.php:72 724 msgid "Auto watermarking" 725 msgstr "" 726 727 #: templates/auto-resize-watermarks-template-metabox.php:76 728 msgid "Bulk watermarking" 729 msgstr "" 730 446 731 #: templates/bulk-apply-watermarks-template.php:12 447 732 #: templates/create-watermarks-template-metabox.php:11 … … 458 743 msgstr "" 459 744 460 #: templates/bulk-apply-watermarks-template.php:28461 msgid "Select Watermarks Template"462 msgstr ""463 464 #: templates/bulk-apply-watermarks-template.php:31465 msgid "-- Select Watermarks Template --"466 msgstr ""467 468 745 #: templates/bulk-apply-watermarks-template.php:42 469 746 msgid "Select Images" … … 678 955 msgstr "" 679 956 957 #: templates/watermark-specs-template-metabox.php:143 958 msgid "Offset corner" 959 msgstr "" 960 961 #: templates/watermark-specs-template-metabox.php:145 962 msgid "Select which corner of the selected position box above to set offset from" 963 msgstr "" 964 965 #: templates/watermark-specs-template-metabox.php:150 966 msgid "Top Left" 967 msgstr "" 968 969 #: templates/watermark-specs-template-metabox.php:151 970 msgid "Top Right" 971 msgstr "" 972 973 #: templates/watermark-specs-template-metabox.php:152 974 msgid "Bottom Left" 975 msgstr "" 976 977 #: templates/watermark-specs-template-metabox.php:153 978 msgid "Bottom Right" 979 msgstr "" 980 680 981 #: templates/watermark-specs-template-metabox.php:162 681 982 msgid "Repeat" … … 686 987 msgstr "" 687 988 989 #: templates/watermark-specs-template-metabox.php:172 990 msgid "X axis" 991 msgstr "" 992 993 #: templates/watermark-specs-template-metabox.php:173 994 msgid "Y axis" 995 msgstr "" 996 997 #: templates/watermark-specs-template-metabox.php:174 998 msgid "Diagonal Axis ( Pro )" 999 msgstr "" 1000 1001 #: templates/watermark-specs-template-metabox.php:175 1002 msgid "X and Y Axis" 1003 msgstr "" 1004 1005 #: templates/watermark-specs-template-metabox.php:176 1006 msgid "Full Repeat ( Pro )" 1007 msgstr "" 1008 688 1009 #: templates/watermark-specs-template-metabox.php:182 689 1010 msgid "Repeat Axis Offset" … … 701 1022 msgid "Rotation" 702 1023 msgstr "" 1024 1025 #: templates/watermark-specs-template-metabox.php:213 1026 msgid "Dynamic placeholders (pro)" 1027 msgstr "" 1028 1029 #: templates/watermark-specs-template-metabox.php:215 1030 msgid "These placeholders will take the value of the selected data field for each order / customer." 1031 msgstr "" -
watermark-images-for-wp-and-woo-grandpluginswp/trunk/readme.txt
r3428126 r3437768 4 4 Requires at least: 5.6 5 5 Requires PHP: 7.0 6 Version: 1.1.9 6 Version: 1.2.0 7 Stable tag: 1.2.0 7 8 Contributors: GrandPlugins 8 9 Author: GrandPlugins 9 10 Plugin URI: https://grandplugins.com/product/wp-images-watermark/ 10 11 Author email: [email protected] 11 License: GPLv2 12 License: GPLv3 13 License URI: https://www.gnu.org/licenses/gpl-3.0.html 12 14 Text Domain: watermark-images-for-wp-and-woo-grandpluginswp 13 15 Domain Path: /languages … … 33 35 [Pro Version] 34 36 35 👉 **[Premium](https://grandplugins.com/product/wp-images-watermark/ ?utm_source=free)** | **[Documentation](https://grandplugins.com/documentation/wp-watermark-images/)** 👈37 👉 **[Premium](https://grandplugins.com/product/wp-images-watermark/)** | **[Documentation](https://grandplugins.com/documentation/wp-watermark-images/)** 👈 36 38 37 39 Pro version includes all free features plus: -
watermark-images-for-wp-and-woo-grandpluginswp/trunk/templates/apply-watermarks-templates-by-posts-template.php
r2914099 r3437768 19 19 ?> 20 20 <div class="subtitle w-100 d-inline-block" > 21 <?php /* translators: Post type name */ ?> 21 22 <?php printf( esc_html__( 'No %s yet:', 'watermark-images-for-wp-and-woo-grandpluginswp' ), $cpt_obj->label ); ?> 22 23 </div> … … 57 58 <p class="ps-0 nonessential column-name text-primary"><small><?php esc_html_e( '( Any of )', 'watermark-images-for-wp-and-woo-grandpluginswp' ); ?></small> <?php echo esc_html__( 'Available Status:', 'watermark-images-for-wp-and-woo-grandpluginswp' ); ?></p> 58 59 <select class="cpt-statuses-select" data-cpt_type="<?php echo esc_attr( $cpt_slug ); ?>" name="cpt_statuses[<?php echo esc_attr( $cpt_slug ); ?>][]" multiple> 59 <option value="">— <?php esc_html_e( 'Select' ); ?> —</option>60 <option value="">— <?php esc_html_e( 'Select', 'watermark-images-for-wp-and-woo-grandpluginswp' ); ?> —</option> 60 61 <?php 61 62 $post_statuses = Apply_Watermarks_Queries::get_cpt_statuses( $cpt_slug ); … … 68 69 </select> 69 70 </div> 70 <div class="relation d-inline-block mx-2"><?php esc_html_e( 'and' ); ?></div>71 <div class="relation d-inline-block mx-2"><?php esc_html_e( 'and', 'watermark-images-for-wp-and-woo-grandpluginswp' ); ?></div> 71 72 <!-- Date Filter --> 72 73 <div class="d-inline-block ms-3 align-middle pb-3"> 73 74 <fieldset> 74 75 <div class="block mb-3"> 75 <legend class="screen-reader-text"><?php esc_html_e( 'Date range' ); ?></legend>76 <p for="post-start-date" class="label-responsive me-1 d-block"><?php esc_html_e( 'Start date:' ); ?></p>76 <legend class="screen-reader-text"><?php esc_html_e( 'Date range', 'watermark-images-for-wp-and-woo-grandpluginswp' ); ?></legend> 77 <p for="post-start-date" class="label-responsive me-1 d-block"><?php esc_html_e( 'Start date:', 'watermark-images-for-wp-and-woo-grandpluginswp' ); ?></p> 77 78 <select class="cpt-start-date-select" data-cpt_type="<?php echo esc_attr( $cpt_slug ); ?>" name="cpt_start_date[<?php echo esc_attr( $cpt_slug ); ?>]"> 78 <option value="">— <?php esc_html_e( 'Select' ); ?> —</option>79 <option value="">— <?php esc_html_e( 'Select', 'watermark-images-for-wp-and-woo-grandpluginswp' ); ?> —</option> 79 80 <?php Apply_Watermarks_Queries::select_date_options( $cpt_slug ); ?> 80 81 </select> 81 82 </div> 82 83 <div class="block"> 83 <p for="post-end-date" class="label-responsive me-2 d-block"><?php esc_html_e( 'End date:' ); ?></p>84 <p for="post-end-date" class="label-responsive me-2 d-block"><?php esc_html_e( 'End date:', 'watermark-images-for-wp-and-woo-grandpluginswp' ); ?></p> 84 85 <select class="cpt-end-date-select" data-cpt_type="<?php echo esc_attr( $cpt_slug ); ?>" name="cpt_end_date[<?php echo esc_attr( $cpt_slug ); ?>]"> 85 <option value="">— <?php esc_html_e( 'Select' ); ?> —</option>86 <option value="">— <?php esc_html_e( 'Select', 'watermark-images-for-wp-and-woo-grandpluginswp' ); ?> —</option> 86 87 <?php Apply_Watermarks_Queries::select_date_options( $cpt_slug ); ?> 87 88 </select> … … 89 90 </fieldset> 90 91 </div> 91 <div class="relation d-inline-block mx-2"><?php esc_html_e( 'and' ); ?></div>92 <div class="relation d-inline-block mx-2"><?php esc_html_e( 'and', 'watermark-images-for-wp-and-woo-grandpluginswp' ); ?></div> 92 93 <!-- Authors Filter --> 93 94 <div class="d-inline-block ms-3"> 94 <p class="ps-0 nonessential column-name text-primary"><small><?php esc_html_e( '( Any of )', 'watermark-images-for-wp-and-woo-grandpluginswp' ); ?></small> <?php esc_html_e( 'Authors ' ); ?></p>95 <p class="ps-0 nonessential column-name text-primary"><small><?php esc_html_e( '( Any of )', 'watermark-images-for-wp-and-woo-grandpluginswp' ); ?></small> <?php esc_html_e( 'Authors ', 'watermark-images-for-wp-and-woo-grandpluginswp' ); ?></p> 95 96 <?php Apply_Watermarks_Queries::select_authors_options( $cpt_slug ); ?> 96 97 </div> … … 103 104 if ( ! empty( $cpt_taxonomy_name ) ) : 104 105 ?> 105 <div class="relation d-inline-block mx-2"><?php esc_html_e( 'and' ); ?></div>106 <div class="ms-2 d-inline-block" >106 <div class="relation d-inline-block mx-2"><?php esc_html_e( 'and', 'watermark-images-for-wp-and-woo-grandpluginswp' ); ?></div> 107 <div class="ms-2 d-inline-block" > 107 108 <p class="ps-0 nonessential column-name text-primary"><?php echo esc_attr( $taxonomy_obj->label . ' [ ' . $cpt_taxonomy_name . ' ] ' ); ?></p> 108 109 <select class="cpt-terms-select" data-cpt_type="<?php echo esc_attr( $cpt_slug ); ?>" data-tax_name="<?php echo esc_attr( $cpt_taxonomy_name ); ?>" name="cpt_name_terms[<?php echo esc_attr( $cpt_slug ); ?>][<?php echo esc_attr( $cpt_taxonomy_name ); ?>]" id="<?php echo esc_attr( 'cpt-name-terms-select-' . $cpt_slug . '-' . $cpt_taxonomy_name ); ?>"></select> … … 186 187 <button type="button" data-cpt="<?php echo esc_attr( $cpt_slug ); ?>" class="btn btn-primary float-left me-1 prev-page button disabled" data-paged="1"><span>←</span></button> 187 188 <span class="float-left me-1 paging-input"> 188 <span id="current-page-selector-<?php echo esc_attr( $cpt_slug ); ?>" class="float-left p-1 current-page">1</span>189 <span id="current-page-selector-<?php echo esc_attr( $cpt_slug ); ?>" class="float-left p-1 current-page">1</span> 189 190 <span class="float-left tablenav-paging-text"> 190 191 <span class="float-left p-1"> <?php esc_html( 'of' ); ?> </span> … … 227 228 <div class="modal selected-images-watermarks-template-modal fade bulk-apply-modal" id="modal-found-images-watermarks-template"> 228 229 <div class="modal-dialog modal-fullscreen mx-auto position-relative"> 229 <?php Apply_Watermarks_Queries::loader_html(); ?>230 <?php Apply_Watermarks_Queries::loader_html(); ?> 230 231 <div class="modal-content"> 231 232 <div class="modal-header"> … … 251 252 <!-- <input type="number" min="1" max="1" value="1" class="float-left current-page" size="3"> --> 252 253 <span class="float-left tablenav-paging-text"> 253 <span class="float-left p-1"> <?php esc_html_e( 'of' ); ?> </span>254 <span class="float-left p-1"> <?php esc_html_e( 'of', 'watermark-images-for-wp-and-woo-grandpluginswp' ); ?> </span> 254 255 <span class="float-left total-pages p-1" data-pages="1">1</span> 255 256 </span> … … 265 266 <tr> 266 267 <td class="manage-column column-cb check-column"> 267 <label for="cb-select-all-1" for="cb-select-all-1" class="screen-reader-text"><?php esc_html_e( 'Select All', ' gpls-wmfw-watermark-image-for-wordpress'); ?></label>268 <label for="cb-select-all-1" for="cb-select-all-1" class="screen-reader-text"><?php esc_html_e( 'Select All', 'watermark-images-for-wp-and-woo-grandpluginswp'); ?></label> 268 269 <input type="checkbox" id="cb-select-all-1" class="cb-select-all-1"> 269 270 </td> -
watermark-images-for-wp-and-woo-grandpluginswp/trunk/templates/auto-apply-watermarks-template-metabox.php
r2914099 r3437768 28 28 <div class="col-3"> 29 29 <div class="auto-apply-img-dimension-width-container" > 30 <label class="my-3"><?php esc_html_e( 'width' ); ?></label>30 <label class="my-3"><?php esc_html_e( 'width', 'watermark-images-for-wp-and-woo-grandpluginswp' ); ?></label> 31 31 <div class="auto-apply-img-dimension-width-wrapper"> 32 32 <select disabled class="auto-apply-img-dimension-width-type" > 33 <option><?php esc_html_e( 'Min' ); ?>34 <option><?php esc_html_e( 'Max' ); ?>33 <option><?php esc_html_e( 'Min', 'watermark-images-for-wp-and-woo-grandpluginswp' ); ?> 34 <option><?php esc_html_e( 'Max', 'watermark-images-for-wp-and-woo-grandpluginswp' ); ?> 35 35 </select> 36 36 <input disabled type="number" class="auto-apply-img-dimension-width"> … … 41 41 <div class="col-3"> 42 42 <div class="auto-apply-img-dimension-height-container" > 43 <label class="my-3"><?php esc_html_e( 'height' ); ?></label>43 <label class="my-3"><?php esc_html_e( 'height', 'watermark-images-for-wp-and-woo-grandpluginswp' ); ?></label> 44 44 <div class="auto-apply-img-dimension-height-wrapper"> 45 45 <select disabled class="auto-apply-img-dimension-height-type" data-type="img-height-type" > 46 <option><?php esc_html_e( 'Min' ); ?>47 <option><?php esc_html_e( 'Max' ); ?>46 <option><?php esc_html_e( 'Min', 'watermark-images-for-wp-and-woo-grandpluginswp' ); ?> 47 <option><?php esc_html_e( 'Max', 'watermark-images-for-wp-and-woo-grandpluginswp' ); ?> 48 48 </select> 49 49 <input disabled type="number" class="auto-apply-img-dimension-height" value=""> … … 124 124 <label for="custom-dir"> 125 125 <input disabled type="checkbox" <?php echo esc_attr( $auto_apply_options['create_backup'] ? 'checked="checked"' : '' ); ?> name="custom_dir" class="custom-dir" id="custom-dir" value="custom_dir" > 126 <strong><?php esc_html_e( 'Create in a custom Directory', ' gpls-wmfw-watermark-image-for-wordpress' ); ?></strong>126 <strong><?php esc_html_e( 'Create in a custom Directory', 'watermark-images-for-wp-and-woo-grandpluginswp' ); ?></strong> 127 127 </label> 128 128 <?php $upload_dir = wp_upload_dir(); ?> 129 129 <?php echo esc_attr( trailingslashit( $upload_dir['basedir'] ) ); ?><input disabled type="text" name="custom_dir_path" class="custom-dir-path regular-text" id="custom-dir-path" value="" > 130 <small class="d-block mt-2 subtitle"><?php esc_html_e( 'Place the watermarked image in custom directory, suitable for custom code snippets to show watermarked images with the same name from a separated directory.', ' gpls-wmfw-watermark-image-for-wordpress' ); ?></small>130 <small class="d-block mt-2 subtitle"><?php esc_html_e( 'Place the watermarked image in custom directory, suitable for custom code snippets to show watermarked images with the same name from a separated directory.', 'watermark-images-for-wp-and-woo-grandpluginswp' ); ?></small> 131 131 </div> 132 132 … … 136 136 <div class="heading d-flex align-items-center"> 137 137 <input disabled type="checkbox" class="apply-watermarks-image-sizes-options-all" /> 138 <h5 class="image-sizes-options-new"><?php esc_html_e( 'Select sub-sizes to create', ' gpls-wmfw-watermark-image-for-wordpress' ); ?></h5>138 <h5 class="image-sizes-options-new"><?php esc_html_e( 'Select sub-sizes to create', 'watermark-images-for-wp-and-woo-grandpluginswp' ); ?></h5> 139 139 </div> 140 140 <div class="subtitle select-image-sizes-checkboxes"> -
watermark-images-for-wp-and-woo-grandpluginswp/trunk/templates/auto-resize-watermarks-template-metabox.php
r3145166 r3437768 6 6 ?> 7 7 <div class="col-md-12 watermark-template-auto-apply-wrapper <?php echo esc_attr( $plugin_info['classes_prefix'] . '-disabled' ); ?>"> 8 <h1 class="display-4 border shadow-sm mt-3 p-4 d-flex align-items-center"><?php esc_html_e( 'Auto resize watermarks in ( auto / bulk ) watermarking', ' gpls-wmfw-watermark-image-for-wordpress' ); ?>9 <span class="<?php echo esc_attr( $plugin_info['classes_prefix'] . '-new-keyword' ); ?> ms-2" style="padding: 5px 10px;border-radius: 5px;background: #e17b7b;color: #FFF;"><?php esc_html_e( 'New', ' gpls-wmfw-watermark-image-for-wordpress' ); ?></span><?php $core->pro_btn(); ?>8 <h1 class="display-4 border shadow-sm mt-3 p-4 d-flex align-items-center"><?php esc_html_e( 'Auto resize watermarks in ( auto / bulk ) watermarking', 'watermark-images-for-wp-and-woo-grandpluginswp' ); ?> 9 <span class="<?php echo esc_attr( $plugin_info['classes_prefix'] . '-new-keyword' ); ?> ms-2" style="padding: 5px 10px;border-radius: 5px;background: #e17b7b;color: #FFF;"><?php esc_html_e( 'New', 'watermark-images-for-wp-and-woo-grandpluginswp' ); ?></span><?php $core->pro_btn(); ?> 10 10 </h1> 11 <h6 class="mt-3"><?php esc_html_e( 'Image watermarks size and text watermarks fontsize will be resized proportionally with the image size', ' gpls-wmfw-watermark-image-for-wordpress' ); ?></h6>11 <h6 class="mt-3"><?php esc_html_e( 'Image watermarks size and text watermarks fontsize will be resized proportionally with the image size', 'watermark-images-for-wp-and-woo-grandpluginswp' ); ?></h6> 12 12 <!-- Auto Apply Options --> 13 13 <div class="auto-apply-options my-5"> … … 15 15 <div class="row my-3"> 16 16 <div class="col-3 mb-2 d-flex align-items-center"> 17 <label class="me-1 fw-bold" for="auto-resize-img-width-ref"><?php esc_html_e( 'Reference width ', ' gpls-wmfw-watermark-image-for-wordpress' ); ?></label>17 <label class="me-1 fw-bold" for="auto-resize-img-width-ref"><?php esc_html_e( 'Reference width ', 'watermark-images-for-wp-and-woo-grandpluginswp' ); ?></label> 18 18 </div> 19 19 <div class="col-9 mb-2"> … … 22 22 <span class="ms-1">px</span> 23 23 </div> 24 <span class="muted d-block my-1"><?php esc_html_e( 'This is the reference width to use watermarks at without resizing.', 'gpls-wmfw-watermark-image-for-wordpress' ); ?></span> 24 <span class="muted d-block my-1"><?php esc_html_e( 'This is the reference width to use watermarks at without resizing.', 'watermark-images-for-wp-and-woo-grandpluginswp' ); ?></span> 25 </div> 26 </div> 27 <!-- Auto resize Image watermark --> 28 <div class="row my-3"> 29 <div class="col-3 mb-2 d-flex align-items-center"> 30 <label class="me-1 fw-bold" for="auto-resize-img-width-ref"><?php esc_html_e( 'Image watermark resize percentage', 'watermark-images-for-wp-and-woo-grandpluginswp' ); ?></label> 31 </div> 32 <div class="col-9 mb-2"> 33 <div class="apply-type step-3"> 34 <!-- Image Percentage --> 35 <div class="apply-type-select apply-type-select-new my-4"> 36 <label for="auto-resize-watermark-type-percentage"> 37 <input disabled data-bs-target="#auto-resize-watermark-type-percentage-field" data-bs-toggle="collapse" type="checkbox" name="auto-resize-watermark-type" class="auto-resize-watermark-type" id="auto-resize-watermark-type-percentage" value="percentage" > 38 <strong><?php esc_html_e( 'Image width percentage', 'watermark-images-for-wp-and-woo-grandpluginswp' ); ?></strong> 39 </label> 40 <small class="d-block mt-2 subtitle"><?php esc_html_e( 'The image watermarks dimensions will be equal to the percentage of the image width.', 'watermark-images-for-wp-and-woo-grandpluginswp' ); ?></small> 41 42 <div class="auto-resize-watermark-type-percentage-field-wrapper subtitle m-3" id="auto-resize-watermark-type-percentage-field" > 43 <div class="p-3"> 44 <input value="30" disabled type="number" name="auto-resize-watermark-type-percentage-value" class="auto-resize-watermark-type-percentage-value" ><span class="ms-1">%</span> 45 </div> 46 </div> 47 </div> 48 </div> 25 49 </div> 26 50 </div> … … 28 52 <div class="row my-3"> 29 53 <div class="col-3 mb-2 d-flex align-items-center"> 30 <label class="me-1 fw-bold" for="auto-resize-img-width-ref"><?php esc_html_e( 'Auto scale offsets', ' gpls-wmfw-watermark-image-for-wordpress' ); ?></label>54 <label class="me-1 fw-bold" for="auto-resize-img-width-ref"><?php esc_html_e( 'Auto scale offsets', 'watermark-images-for-wp-and-woo-grandpluginswp' ); ?></label> 31 55 </div> 32 56 <div class="col-9 mb-2"> 33 57 <div class="input-wrapper"> 34 <input type="checkbox" disabled checked="checked" id="auto-resize-scale-offset" class="auto-resize-scale-offset" >35 <span class="muted ms-1 my-1"><?php esc_html_e( 'Auto scale repeat axis offset.', ' gpls-wmfw-watermark-image-for-wordpress' ); ?></span>36 <span class="muted ms-1 my-1 d-block"><?php esc_html_e( 'The repeat offset values in x and y will be scaled up/down depending on the image width relative to the reference width.', ' gpls-wmfw-watermark-image-for-wordpress' ); ?></span>58 <input disabled type="checkbox" id="auto-resize-scale-offset" class="auto-resize-scale-offset" name="auto-resize-scale-offset" > 59 <span class="muted ms-1 my-1"><?php esc_html_e( 'Auto scale repeat axis offset.', 'watermark-images-for-wp-and-woo-grandpluginswp' ); ?></span> 60 <span class="muted ms-1 my-1 d-block"><?php esc_html_e( 'The repeat offset values in x and y will be scaled up/down depending on the image width relative to the reference width.', 'watermark-images-for-wp-and-woo-grandpluginswp' ); ?></span> 37 61 </div> 38 62 </div> … … 41 65 <div class="row my-3"> 42 66 <div class="col-3 mb-2 d-flex align-items-center"> 43 <label class="me-1 fw-bold" for="auto-resize-img-width-ref"><?php esc_html_e( 'Auto resize context', ' gpls-wmfw-watermark-image-for-wordpress' ); ?></label>67 <label class="me-1 fw-bold" for="auto-resize-img-width-ref"><?php esc_html_e( 'Auto resize context', 'watermark-images-for-wp-and-woo-grandpluginswp' ); ?></label> 44 68 </div> 45 69 <div class="col-9 mb-2"> 46 70 <div class="form-check my-1 ps-0"> 47 71 <input type="checkbox" disabled checked="checked" id="auto-resize-context" class="m-0 auto-resize-context me-2" value="auto" > 48 <label for="auto-apply-context"><?php esc_html_e( 'Auto watermarking', ' gpls-wmfw-watermark-image-for-wordpress' ); ?></label>72 <label for="auto-apply-context"><?php esc_html_e( 'Auto watermarking', 'watermark-images-for-wp-and-woo-grandpluginswp' ); ?></label> 49 73 </div> 50 74 <div class="form-check my-1 ps-0"> 51 75 <input type="checkbox" disabled checked="checked" id="auto-resize-context" class="m-0 auto-resize-context me-2" value="bulk" > 52 <label for="auto-apply-context"><?php esc_html_e( 'Bulk watermarking', ' gpls-wmfw-watermark-image-for-wordpress' ); ?></label>76 <label for="auto-apply-context"><?php esc_html_e( 'Bulk watermarking', 'watermark-images-for-wp-and-woo-grandpluginswp' ); ?></label> 53 77 </div> 54 78 </div> -
watermark-images-for-wp-and-woo-grandpluginswp/trunk/templates/bulk-apply-watermarks-template.php
r2914099 r3437768 145 145 <div class="main-loader loader w-100 h-100 position-fixed top-0 left-0"> 146 146 <div class="text-white wrapper text-center position-absolute d-block w-100 h-100"> 147 <img class="loader-icon position-fixed" src="<?php echo esc_url _raw( admin_url( 'images/spinner-2x.gif' ) ); ?>" />147 <img class="loader-icon position-fixed" src="<?php echo esc_url( admin_url( 'images/spinner-2x.gif' ) ); ?>" /> 148 148 <div class="d-none loader-progress-num" ></div> 149 149 <progress class="d-none loader-progress" value="0" max="100" ></progress> -
watermark-images-for-wp-and-woo-grandpluginswp/trunk/templates/create-watermarks-template-metabox.php
r2914099 r3437768 42 42 <div class="img-item preview-selected-item text-center overflow-auto"> 43 43 <div id="selected-preview-container" class="selected-preview-container position-relative d-inline-block" style="overflow: auto !important; width: auto; margin: 0px;"> 44 <img class="selected-preview" src="<?php echo esc_url _raw( $template_preview_img_url ); ?>" alt="" style="max-width: none !important;">44 <img class="selected-preview" src="<?php echo esc_url( $template_preview_img_url ); ?>" alt="" style="max-width: none !important;"> 45 45 <input type="hidden" name="selected-preview-img-id" class="selected-preview-img-id" value="<?php echo absint( esc_attr( ! empty( $template_watermarks['preview_img_id'] ) ? $template_watermarks['preview_img_id'] : 0 ) ); ?>" > 46 46 <!-- === Watermark Image Placeholder === --> -
watermark-images-for-wp-and-woo-grandpluginswp/trunk/templates/watermark-specs-template-metabox.php
r3145166 r3437768 141 141 <div class="col mt-2"> 142 142 <label class="mb-2" for="<?php echo esc_attr( $plugin_info['name'] . '-position-offset-corner' ); ?>"> 143 < span><?php $core->new_keyword( 'New', false ); ?></span> <?php esc_html_e( 'Offset corner', 'gpls-wmfw-watermark-image-for-wordpress' ); ?>143 <?php esc_html_e( 'Offset corner', 'watermark-images-for-wp-and-woo-grandpluginswp' ); ?> 144 144 <span><?php $core->pro_btn(); ?></span> 145 <button style="padding: 1px 9px;" type="button" class="btn btn-secondary rounded-circle mt-1" data-bs-toggle="tooltip" data-bs-placement="right" title="<?php esc_html_e( 'Select which corner of the selected position box above to set offset from', ' gpls-wmfw-watermark-image-for-wordpress' ); ?>" >?</button>145 <button style="padding: 1px 9px;" type="button" class="btn btn-secondary rounded-circle mt-1" data-bs-toggle="tooltip" data-bs-placement="right" title="<?php esc_html_e( 'Select which corner of the selected position box above to set offset from', 'watermark-images-for-wp-and-woo-grandpluginswp' ); ?>" >?</button> 146 146 </label> 147 147 <div class="edit offset-corner-select-wrapper"> 148 148 <select data-watermarkid="<?php echo esc_attr( ! empty( $watermark_data ) ? $watermark_data['id'] : '' ); ?>" class="edit edit-position-offset-corner form-control" name="<?php echo esc_attr( ! empty( $watermark_data ) ? 'watermarks[' . $watermark_data['id'] . '][offsetCorner]' : '' ); ?>" id="<?php echo esc_attr( $plugin_info['name'] . '-offset-corner' ); ?>" data-type="position-offset-corner"> 149 <option value="">— <?php echo esc_attr( esc_html__( 'Select', ' gpls-wmfw-watermark-image-for-wordpress' ) ); ?> —</option>150 <option <?php echo esc_attr( empty( $watermark_data ) || empty( $watermark_data['offsetCorner'] ) || ( ! empty( $watermark_data['offsetCorner'] ) && 'tl' === $watermark_data['offsetCorner'] ) ? 'selected' : '' ); ?> value="tl"><?php echo esc_html_e( 'Top Left', ' gpls-wmfw-watermark-image-for-wordpress' ); ?></option>151 <option <?php echo esc_attr( ! empty( $watermark_data ) && ( 'tr' === $watermark_data['offsetCorner'] ) ? 'selected' : '' ); ?> value="tr"><?php esc_html_e( 'Top Right', 'gpls-wmfw-watermark-image-for-wordpress' ); ?></option>152 <option <?php echo esc_attr( ! empty( $watermark_data ) && ( 'bl' === $watermark_data['offsetCorner'] ) ? 'selected' : '' ); ?> value="bl"><?php esc_html_e( 'Bottom Left', 'gpls-wmfw-watermark-image-for-wordpress' ); ?></option>153 <option <?php echo esc_attr( ! empty( $watermark_data ) && ( 'br' === $watermark_data['offsetCorner'] ) ? 'selected' : '' ); ?> value="br"><?php esc_html_e( 'Bottom Right', 'gpls-wmfw-watermark-image-for-wordpress' ); ?></option>149 <option value="">— <?php echo esc_attr( esc_html__( 'Select', 'watermark-images-for-wp-and-woo-grandpluginswp' ) ); ?> —</option> 150 <option <?php echo esc_attr( empty( $watermark_data ) || empty( $watermark_data['offsetCorner'] ) || ( ! empty( $watermark_data['offsetCorner'] ) && 'tl' === $watermark_data['offsetCorner'] ) ? 'selected' : '' ); ?> value="tl"><?php echo esc_html_e( 'Top Left', 'watermark-images-for-wp-and-woo-grandpluginswp' ); ?></option> 151 <option <?php echo esc_attr( ! empty( $watermark_data ) && ! empty( $watermark_data['offsetCorner'] ) && ( 'tr' === $watermark_data['offsetCorner'] ) ? 'selected' : '' ); ?> value="tr"><?php esc_html_e( 'Top Right', 'watermark-images-for-wp-and-woo-grandpluginswp' ); ?></option> 152 <option <?php echo esc_attr( ! empty( $watermark_data ) && ! empty( $watermark_data['offsetCorner'] ) && ( 'bl' === $watermark_data['offsetCorner'] ) ? 'selected' : '' ); ?> value="bl"><?php esc_html_e( 'Bottom Left', 'watermark-images-for-wp-and-woo-grandpluginswp' ); ?></option> 153 <option <?php echo esc_attr( ! empty( $watermark_data ) && ! empty( $watermark_data['offsetCorner'] ) && ( 'br' === $watermark_data['offsetCorner'] ) ? 'selected' : '' ); ?> value="br"><?php esc_html_e( 'Bottom Right', 'watermark-images-for-wp-and-woo-grandpluginswp' ); ?></option> 154 154 </select> 155 155 </div> … … 169 169 <div class="repeat-axis-select-wrapper"> 170 170 <select data-watermarkid="<?php echo esc_attr( ! empty( $watermark_data ) ? $watermark_data['id'] : '' ); ?>" class="repeat-axis-select" name="<?php echo esc_attr( ! empty( $watermark_data ) ? 'watermarks[' . $watermark_data['id'] . '][repeatAxis]' : '' ); ?>" id="<?php echo esc_attr( $plugin_info['name'] . '-position-repeat-axis' ); ?>"> 171 <option value="">— <?php e cho esc_attr( 'Select', 'watermark-images-for-wp-and-woo-grandpluginswp' ); ?> —</option>172 <option <?php echo esc_attr( ! empty( $watermark_data ) && ( 'x' === $watermark_data['repeatAxis'] ) ? 'selected' : '' ); ?> value="x"><?php e cho esc_html( 'X axis', 'watermark-images-for-wp-and-woo-grandpluginswp' ); ?></option>173 <option <?php echo esc_attr( ! empty( $watermark_data ) && ( 'y' === $watermark_data['repeatAxis'] ) ? 'selected' : '' ); ?> value="y"><?php e cho esc_html( 'Y axis', 'watermark-images-for-wp-and-woo-grandpluginswp' ); ?></option>174 <option disabled <?php echo esc_attr( ! empty( $watermark_data ) && ( 'diagonal' === $watermark_data['repeatAxis'] ) ? 'selected' : '' ); ?> value="diagonal"><?php e cho esc_html( 'Diagonal Axis ( Pro )', 'watermark-images-for-wp-and-woo-grandpluginswp' ); ?></option>175 <option <?php echo esc_attr( ! empty( $watermark_data ) && ( 'both' === $watermark_data['repeatAxis'] ) ? 'selected' : '' ); ?> value="both"><?php e cho esc_html( 'X and Y Axis', 'watermark-images-for-wp-and-woo-grandpluginswp' ); ?></option>176 <option disabled <?php echo esc_attr( ! empty( $watermark_data ) && ( 'full' === $watermark_data['repeatAxis'] ) ? 'selected' : '' ); ?> value="full"><?php e cho esc_html( 'Full Repeat ( Pro )', 'watermark-images-for-wp-and-woo-grandpluginswp' ); ?></option>171 <option value="">— <?php esc_html_e( 'Select', 'watermark-images-for-wp-and-woo-grandpluginswp' ); ?> —</option> 172 <option <?php echo esc_attr( ! empty( $watermark_data ) && ( 'x' === $watermark_data['repeatAxis'] ) ? 'selected' : '' ); ?> value="x"><?php esc_html_e( 'X axis', 'watermark-images-for-wp-and-woo-grandpluginswp' ); ?></option> 173 <option <?php echo esc_attr( ! empty( $watermark_data ) && ( 'y' === $watermark_data['repeatAxis'] ) ? 'selected' : '' ); ?> value="y"><?php esc_html_e( 'Y axis', 'watermark-images-for-wp-and-woo-grandpluginswp' ); ?></option> 174 <option disabled <?php echo esc_attr( ! empty( $watermark_data ) && ( 'diagonal' === $watermark_data['repeatAxis'] ) ? 'selected' : '' ); ?> value="diagonal"><?php esc_html_e( 'Diagonal Axis ( Pro )', 'watermark-images-for-wp-and-woo-grandpluginswp' ); ?></option> 175 <option <?php echo esc_attr( ! empty( $watermark_data ) && ( 'both' === $watermark_data['repeatAxis'] ) ? 'selected' : '' ); ?> value="both"><?php esc_html_e( 'X and Y Axis', 'watermark-images-for-wp-and-woo-grandpluginswp' ); ?></option> 176 <option disabled <?php echo esc_attr( ! empty( $watermark_data ) && ( 'full' === $watermark_data['repeatAxis'] ) ? 'selected' : '' ); ?> value="full"><?php esc_html_e( 'Full Repeat ( Pro )', 'watermark-images-for-wp-and-woo-grandpluginswp' ); ?></option> 177 177 </select> 178 178 </div> … … 211 211 <div class="<?php echo esc_attr( Watermarks_Templates::$plugin_info['classes_prefix'] . '-disabled' ); ?>"> 212 212 <h6 class="me-1 form-check-label mt-1"> 213 <?php esc_html_e( 'Dynamic placeholders (pro)', 'gpls-wmfw-watermark-image-for-wordpress' ); ?> 214 <span><?php $core->new_keyword( 'New', false ); ?></span> 213 <?php esc_html_e( 'Dynamic placeholders (pro)', 'watermark-images-for-wp-and-woo-grandpluginswp' ); ?> 215 214 <span><?php $core->pro_btn(); ?></span> 216 <button style="padding: 1px 9px;" type="button" class="btn btn-secondary rounded-circle mt-1" data-bs-toggle="tooltip" data-bs-placement="right" title="<?php esc_html_e( 'These placeholders will take the value of the selected data field for each order / customer.', ' gpls-wmfw-watermark-image-for-wordpress' ); ?>" >?</button>215 <button style="padding: 1px 9px;" type="button" class="btn btn-secondary rounded-circle mt-1" data-bs-toggle="tooltip" data-bs-placement="right" title="<?php esc_html_e( 'These placeholders will take the value of the selected data field for each order / customer.', 'watermark-images-for-wp-and-woo-grandpluginswp' ); ?>" >?</button> 217 216 </h6> 218 217 <?php Watermarks_Templates::watermarks_text_meta_select( $watermark_data ); ?> … … 247 246 <!-- imgID --> 248 247 <input type="hidden" name="<?php echo esc_attr( 'watermarks[' . $watermark_data['id'] . '][imgID]' ); ?>" value="<?php echo esc_attr( $watermark_data['imgID'] ); ?>" > 249 <?php248 <?php 250 249 endif; 251 250 endif;
Note: See TracChangeset
for help on using the changeset viewer.