From f99bc6f1ba6728c4f44a4de2d3eaef296d7efc49 Mon Sep 17 00:00:00 2001 From: Cornel Bicuti Date: Thu, 6 Jul 2023 17:14:44 +0100 Subject: [PATCH] feat: add 'open in new tab' option --- .dev/src/blocks/domain-search/attributes.js | 4 ++++ .dev/src/blocks/domain-search/inspector.js | 9 +++++++++ .dev/src/blocks/product/attributes.js | 4 ++++ .dev/src/blocks/product/components/inspector.js | 7 +++++++ assets/js/editor.blocks.min.js | 2 +- class-plugin.php | 2 +- includes/functions/product-functions.php | 15 +++------------ includes/functions/template-functions.php | 10 ++++++---- includes/modules/rstore-fl-domain-simple.php | 9 +++++++++ includes/modules/rstore-fl-domain-transfer.php | 9 +++++++++ includes/modules/rstore-fl-product.php | 9 +++++++++ includes/modules/rstore-vc-domain-simple.php | 12 ++++++++++++ includes/modules/rstore-vc-domain-transfer.php | 12 ++++++++++++ includes/modules/rstore-vc-product.php | 12 ++++++++++++ includes/widgets/class-domain-simple.php | 8 +++++++- includes/widgets/class-domain-transfer.php | 9 ++++++++- includes/widgets/class-product.php | 6 ++++-- readme.md | 10 +++++++++- readme.txt | 10 +++++++++- reseller-store.php | 2 +- tests/test-template-functions.php | 16 ++++++++++++++-- tests/test-widget-domain-transfer.php | 1 + tests/test-widget-product.php | 1 + 23 files changed, 152 insertions(+), 27 deletions(-) diff --git a/.dev/src/blocks/domain-search/attributes.js b/.dev/src/blocks/domain-search/attributes.js index 60c4bf67..2c4cfe54 100644 --- a/.dev/src/blocks/domain-search/attributes.js +++ b/.dev/src/blocks/domain-search/attributes.js @@ -20,6 +20,10 @@ const attributes = { type: 'boolean', default: false, }, + new_tab: { + type: 'boolean', + default: false, + }, page_size: { type: 'number', default: 5, diff --git a/.dev/src/blocks/domain-search/inspector.js b/.dev/src/blocks/domain-search/inspector.js index 4f8eedbe..56ed8c0d 100644 --- a/.dev/src/blocks/domain-search/inspector.js +++ b/.dev/src/blocks/domain-search/inspector.js @@ -60,6 +60,15 @@ const Inspector = ( { attributes, setAttributes } ) => { label={ __( 'Display results in a modal', 'reseller-store' ) } checked={ attributes.modal } onChange={ ( modal ) => setAttributes( { modal } ) } + /> + + ) } + { 'advanced' !== attributes.search_type && ( + + setAttributes( { new_tab } ) } /> ) } diff --git a/.dev/src/blocks/product/attributes.js b/.dev/src/blocks/product/attributes.js index 3f29eaba..6b488764 100644 --- a/.dev/src/blocks/product/attributes.js +++ b/.dev/src/blocks/product/attributes.js @@ -24,6 +24,10 @@ const attributes = { type: 'string', default: __( 'Add to cart', 'reseller-store' ), }, + button_new_tab: { + type: 'boolean', + default: false, + }, content_height: { type: 'number', default: 250, diff --git a/.dev/src/blocks/product/components/inspector.js b/.dev/src/blocks/product/components/inspector.js index b9036c40..f8601bda 100644 --- a/.dev/src/blocks/product/components/inspector.js +++ b/.dev/src/blocks/product/components/inspector.js @@ -65,6 +65,13 @@ const Inspector = ( { posts, media, attributes, setAttributes } ) => { value={ attributes.button_label } onChange={ ( buttonLabel ) => setAttributes( { button_label: buttonLabel } ) } /> + { + setAttributes( { button_new_tab: checked } ); + } } + /> 0?"".concat(r.content_height,"px"):void 0};return React.createElement(s,null,React.createElement(a.default,{post:n,media:t,size:r.image_size}),React.createElement("div",{className:"rstore-product-header"},r.show_title&&React.createElement("h4",{className:"widget-title"},n.title.rendered),"default"===r.layout_type&&r.show_price&&React.createElement("div",{dangerouslySetInnerHTML:{__html:n.price_html}}),"default"===r.layout_type&&r.button_label.length>0&&React.createElement(c,{className:"rstore-add-to-cart button btn btn-primary"},r.button_label),r.show_content&&React.createElement("div",{style:o,className:"rstore-product-summary",dangerouslySetInnerHTML:{__html:n.content.rendered}}),r.show_content&&r.content_height>0&&React.createElement(c,{className:"link",isLink:!0},r.text_more),"classic"===r.layout_type&&r.show_price&&React.createElement("div",{dangerouslySetInnerHTML:{__html:n.price_html}}),"classic"===r.layout_type&&r.button_label.length>0&&React.createElement(c,{className:"rstore-add-to-cart button btn btn-primary"},r.button_label)))}},467:function(e,t){Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var n=wp.i18n.__,r=wp.blockEditor.InspectorControls,a=wp.components,l=a.CheckboxControl,o=a.PanelBody,c=a.RangeControl,i=a.SelectControl,s=a.Spinner,u=a.TextControl;t.default=function(e){var t=e.posts,a=e.media,d=e.attributes,f=e.setAttributes;if(!t)return React.createElement(r,null,React.createElement(s,null),n("Loading Posts","reseller-store"));if(0===t.length)return React.createElement("p",null,n("No products found","reseller-store"));var p=t.map((function(e){return{value:e.id,label:e.title.rendered}})),m=[];return a&&((m=Object.keys(a.media_details.sizes).map((function(e){return{value:e,label:e}}))).splice(0,0,{value:"icon",label:n("Product Icon","reseller-store")}),m.push({value:"none",label:n("Hide image","reseller-store")})),React.createElement(r,null,React.createElement(o,null,React.createElement(i,{label:n("Select Product","reseller-store"),onChange:function(e){return f({post_id:e.toString()})},value:d.post_id,options:p})),React.createElement(o,null,React.createElement(i,{label:n("Image Size","reseller-store"),onChange:function(e){return f({image_size:e})},value:d.image_size,options:m})),React.createElement(o,null,React.createElement(u,{label:n("Button","reseller-store"),value:d.button_label,onChange:function(e){return f({button_label:e})}})),React.createElement(o,null,React.createElement(l,{label:n("Show product title","reseller-store"),checked:d.show_title,onChange:function(e){f({show_title:e})}}),React.createElement(l,{label:n("Show product price","reseller-store"),checked:d.show_price,onChange:function(e){f({show_price:e})}}),React.createElement(l,{label:n("Show post content","reseller-store"),checked:d.show_content,onChange:function(e){f({show_content:e})}})),d.show_content&&React.createElement(o,null,React.createElement(l,{label:n("Set content height","reseller-store"),checked:d.content_height>0,onChange:function(e){f({content_height:e?250:0})}}),d.content_height>0&&React.createElement("div",null,React.createElement(c,{beforeIcon:"arrow-left-alt2",afterIcon:"arrow-right-alt2",label:n("Product content height","reseller-store"),value:d.content_height,onChange:function(e){return f({content_height:e})},min:1,max:500}),React.createElement(u,{label:n("More info button text","reseller-store"),value:d.text_more,onChange:function(e){return f({text_more:e})}}))),React.createElement(o,null,React.createElement(l,{label:n("Redirect to cart after adding item","reseller-store"),checked:d.redirect,onChange:function(e){f({redirect:e})}})),React.createElement(i,{label:n("Layout Type","reseller-store"),onChange:function(e){return f({layout_type:e})},value:d.layout_type,options:[{value:"default",label:n("Default","reseller-store")},{value:"classic",label:n("Classic","reseller-store")}]}))}},349:function(e,t){Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;t.default=function(e){var t=e.post,n=e.media,r=e.size;return"icon"===r?React.createElement("div",{dangerouslySetInnerHTML:{__html:t.icon_html}}):n&&"none"!==r&&r in n.media_details.sizes?React.createElement("img",{title:n.title.rendered,alt:n.alt_text,src:n.media_details.sizes[r].source_url}):null}},843:function(e,t){Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var n=React.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},React.createElement("title",null,"Business Ads"),React.createElement("path",{fill:"#ffffff",d:"M19.5,4.5H2.5a1,1,0,0,0-1,1v12a1,1,0,0,0,1,1h17a1,1,0,0,0,1-1V5.5A1,1,0,0,0,19.5,4.5Z"}),React.createElement("path",{fill:"#3690FF",d:"M20.5,5.5v3H1.5v-3a1,1,0,0,1,1-1h17A1,1,0,0,1,20.5,5.5Z"}),React.createElement("path",{fill:"#111111",d:"M12.5,19H2.5A1.5,1.5,0,0,1,1,17.5V5.5A1.5,1.5,0,0,1,2.5,4h17A1.5,1.5,0,0,1,21,5.5v4a.5.5,0,1,1-1,0v-4a.5.5,0,0,0-.5-.5H2.5a.5.5,0,0,0-.5.5v12a.5.5,0,0,0,.5.5h10a.5.5,0,0,1,0,1Z"}),React.createElement("path",{fill:"#111111",d:"M20.5,9H1.5a.5.5,0,0,1,0-1h19a.5.5,0,0,1,0,1ZM14,6.5a.5.5,0,1,1,.5.5.5.5,0,0,1-.5-.5m2,0a.5.5,0,1,1,.5.5.5.5,0,0,1-.5-.5m2,0a.5.5,0,1,1,.5.5.5.5,0,0,1-.5-.5"}),React.createElement("path",{fill:"#3690FF",d:"M22.5,14H20l1.83-2.5H18L15.25,15h2L15,19.5Z"}),React.createElement("path",{fill:"#000000",d:"M15,20a.5.5,0,0,1-.45-.72l1.87-3.78H15.25a.5.5,0,0,1-.39-.81l2.75-3.5A.5.5,0,0,1,18,11h3.88a.5.5,0,0,1,.4.8L21,13.5H22.5a.5.5,0,0,1,.3.9l-7.5,5.5A.5.5,0,0,1,15,20Zm1.28-5.5h1a.5.5,0,0,1,.45.72l-1.32,2.66L21,14.5H20a.5.5,0,0,1-.4-.8L20.89,12H18.24l-2,2.5Z"}),React.createElement("path",{fill:"#cccccc",d:"M12,13.5H4.5a1,1,0,0,1-1-1v-1a1,1,0,0,1,1-1H12a1,1,0,0,1,1,1v1A1,1,0,0,1,12,13.5Zm-2.5,2h-1a.5.5,0,0,1,0-1h1a.5.5,0,0,1,0,1Zm-3,0h-2a.5.5,0,0,1,0-1h2a.5.5,0,0,1,0,1Z"}),React.createElement("path",{fill:"#111111",d:"M19.5,19a.5.5,0,1,1,0-1,.5.5,0,0,0,.5-.5.5.5,0,0,1,1,0A1.5,1.5,0,0,1,19.5,19Z"}));t.default=n},603:function(e,t,n){var r=c(n(843)),a=n(657),l=c(n(488)),o=c(n(805));function c(e){return e&&e.__esModule?e:{default:e}}n(958);var i=wp.i18n.__;(0,wp.blocks.registerBlockType)("reseller-store/product",{title:i("Product","reseller-store"),description:i("Display a product post","reseller-store"),icon:{src:r.default},category:"reseller-store",keywords:["product","reseller"],attributes:l.default,edit:(0,a.productSelector)((0,a.mediaSelector)(o.default)),save:function(){return null}})},657:function(e,t){Object.defineProperty(t,"__esModule",{value:!0}),t.productSelector=t.mediaSelector=void 0;var n=wp.data.withSelect,r=n((function(e,t){var n=t.post;return n&&n.featured_media?{media:e("core").getEntityRecord("root","media",n.featured_media)}:{}}));t.mediaSelector=r;var a=n((function(e,t){var n=t.attributes,r=e("core").getEntityRecords("postType","reseller_product",{per_page:100});if(r&&r.length){if(void 0===n.post_id)return{posts:r,post:r[0]};var a=r.find((function(e){return e.id.toString()===n.post_id}));return void 0===a?{posts:r,post:r[0]}:{posts:r,post:a}}return{}}));t.productSelector=a},853:function(){wp.i18n.setLocaleData({"":{}},"reseller-store")},511:function(e,t,n){var r=n(537),a=n.n(r),l=n(645),o=n.n(l)()(a());o.push([e.id,".rstore-domain input.search-field{width:68%;height:30px}.rstore-domain button.search-submit{height:32px}","",{version:3,sources:["webpack://./.dev/src/blocks/domain-search/editor.scss"],names:[],mappings:"AAEE,kCACC,SAAA,CACA,WAAA,CAID,oCACC,WAAA",sourcesContent:[".rstore-domain {\n\tinput {\n\t\t&.search-field {\n\t\t\twidth: 68%;\n\t\t\theight: 30px;\n\t\t}\n\t}\n\tbutton {\n\t\t&.search-submit {\n\t\t\theight: 32px;\n\t\t}\n\t}\n}\n"],sourceRoot:""}]),t.Z=o},132:function(e,t,n){var r=n(537),a=n.n(r),l=n(645),o=n.n(l)()(a());o.push([e.id,".rstore-product-icons svg{width:8rem;display:block;margin-left:auto;margin-right:auto}.rstore-product-icons svg .svg-fill-primary-o{fill:#3690ff}.rstore-product-icons svg .svg-fill-black{fill:#000}.rstore-product-icons svg .svg-fill-gray-light{fill:#aea99c}.rstore-product-icons svg .svg-fill-white{fill:#fff}.rstore-product-icons svg .svg-fill-wordpress{fill:#00749a}.rstore-product-icons svg .svg-fill-cpanel{fill:#f26c31}.rstore-product-icons svg .svg-fill-windows{fill:#f22307}","",{version:3,sources:["webpack://./.dev/src/blocks/product/editor.scss","webpack://./.dev/sass/partials/icon-colors.scss"],names:[],mappings:"AAEC,0BACC,UAAA,CACA,aAAA,CACA,gBAAA,CACA,iBAAA,CCNF,8CACC,YAAA,CAGD,0CACC,SAAA,CAGD,+CACC,YAAA,CAGD,0CACC,SAAA,CAGD,8CACC,YAAA,CAGD,2CACC,YAAA,CAGD,4CACC,YAAA",sourcesContent:['.rstore-product-icons {\n\n\tsvg {\n\t\twidth: 8rem;\n\t\tdisplay: block;\n\t\tmargin-left: auto;\n\t\tmargin-right: auto;\n\n\t\t@import "../../../sass/partials/icon-colors";\n\t}\n}\n',".svg-fill-primary-o {\n\tfill: #3690FF;\n}\n\n.svg-fill-black {\n\tfill: #000000;\n}\n\n.svg-fill-gray-light {\n\tfill: #AEA99C;\n}\n\n.svg-fill-white {\n\tfill: #FFFFFF;\n}\n\n.svg-fill-wordpress {\n\tfill: #00749A;\n}\n\n.svg-fill-cpanel {\n\tfill: #F26C31;\n}\n\n.svg-fill-windows {\n\tfill: #F22307;\n}"],sourceRoot:""}]),t.Z=o},645:function(e){e.exports=function(e){var t=[];return t.toString=function(){return this.map((function(t){var n="",r=void 0!==t[5];return t[4]&&(n+="@supports (".concat(t[4],") {")),t[2]&&(n+="@media ".concat(t[2]," {")),r&&(n+="@layer".concat(t[5].length>0?" ".concat(t[5]):""," {")),n+=e(t),r&&(n+="}"),t[2]&&(n+="}"),t[4]&&(n+="}"),n})).join("")},t.i=function(e,n,r,a,l){"string"==typeof e&&(e=[[null,e,void 0]]);var o={};if(r)for(var c=0;c0?" ".concat(u[5]):""," {").concat(u[1],"}")),u[5]=l),n&&(u[2]?(u[1]="@media ".concat(u[2]," {").concat(u[1],"}"),u[2]=n):u[2]=n),a&&(u[4]?(u[1]="@supports (".concat(u[4],") {").concat(u[1],"}"),u[4]=a):u[4]="".concat(a)),t.push(u))}},t}},537:function(e){e.exports=function(e){var t=e[1],n=e[3];if(!n)return t;if("function"==typeof btoa){var r=btoa(unescape(encodeURIComponent(JSON.stringify(n)))),a="sourceMappingURL=data:application/json;charset=utf-8;base64,".concat(r),l="/*# ".concat(a," */");return[t].concat([l]).join("\n")}return[t].join("\n")}},163:function(e,t,n){n.r(t);var r=n(379),a=n.n(r),l=n(795),o=n.n(l),c=n(569),i=n.n(c),s=n(565),u=n.n(s),d=n(216),f=n.n(d),p=n(589),m=n.n(p),h=n(511),v={};v.styleTagTransform=m(),v.setAttributes=u(),v.insert=i().bind(null,"head"),v.domAPI=o(),v.insertStyleElement=f(),a()(h.Z,v),t.default=h.Z&&h.Z.locals?h.Z.locals:void 0},958:function(e,t,n){n.r(t);var r=n(379),a=n.n(r),l=n(795),o=n.n(l),c=n(569),i=n.n(c),s=n(565),u=n.n(s),d=n(216),f=n.n(d),p=n(589),m=n.n(p),h=n(132),v={};v.styleTagTransform=m(),v.setAttributes=u(),v.insert=i().bind(null,"head"),v.domAPI=o(),v.insertStyleElement=f(),a()(h.Z,v),t.default=h.Z&&h.Z.locals?h.Z.locals:void 0},379:function(e){var t=[];function n(e){for(var n=-1,r=0;r0?" ".concat(n.layer):""," {")),r+=n.css,a&&(r+="}"),n.media&&(r+="}"),n.supports&&(r+="}");var l=n.sourceMap;l&&"undefined"!=typeof btoa&&(r+="\n/*# sourceMappingURL=data:application/json;base64,".concat(btoa(unescape(encodeURIComponent(JSON.stringify(l))))," */")),t.styleTagTransform(r,e,t.options)}(t,e,n)},remove:function(){!function(e){if(null===e.parentNode)return!1;e.parentNode.removeChild(e)}(t)}}}},589:function(e){e.exports=function(e,t){if(t.styleSheet)t.styleSheet.cssText=e;else{for(;t.firstChild;)t.removeChild(t.firstChild);t.appendChild(document.createTextNode(e))}}}},t={};function n(r){var a=t[r];if(void 0!==a)return a.exports;var l=t[r]={id:r,exports:{}};return e[r](l,l.exports,n),l.exports}n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,{a:t}),t},n.d=function(e,t){for(var r in t)n.o(t,r)&&!n.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.nc=void 0,n(853),n(603),n(261)}(); +!function(){"use strict";var e={847:function(e,t){Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var n=wp.i18n.__,r={title:{type:"string"},text_placeholder:{type:"string",default:n("Find your perfect domain name","reseller-store")},text_search:{type:"string",default:n("Search","reseller-store")},search_type:{type:"string",default:"standard"},modal:{type:"boolean",default:!1},new_tab:{type:"boolean",default:!1},page_size:{type:"number",default:5}};t.default=r},862:function(e,t){Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var n=wp.components.Button;t.default=function(e){var t=e.attributes;return React.createElement("div",{className:"widget rstore-domain widget_search"},t.title&&React.createElement("div",{className:"widget rstore-domain"},t.title),React.createElement("div",{className:"search-form"},React.createElement("input",{className:"search-field",placeholder:t.text_placeholder}),React.createElement(n,{className:"search-submit",isDefault:!0},t.text_search)))}},581:function(e,t){Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var n=React.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},React.createElement("title",null,"Domains"),React.createElement("circle",{fill:"#3690FF",cx:"12",cy:"12",r:"10.5"}),React.createElement("path",{fill:"#111111",d:"M12,23A11,11,0,1,1,23,12,11,11,0,0,1,12,23ZM12,2A10,10,0,1,0,22,12,10,10,0,0,0,12,2Z"}),React.createElement("path",{fill:"#111111",d:"M12,23a.5.5,0,0,1-.19,0c-.23-.1-5.75-2.48-5.75-11S11.58,1.13,11.82,1a.5.5,0,0,1,.68.47v21A.5.5,0,0,1,12,23ZM11.5,2.32c-1.4.86-4.44,3.45-4.44,9.61s3,8.79,4.44,9.71V2.32Z"}),React.createElement("path",{fill:"#111111",d:"M12,23a.5.5,0,0,1-.5-.5V1.5A.5.5,0,0,1,12.18,1c.23.09,5.76,2.35,5.76,10.9s-5.51,10.93-5.74,11A.52.52,0,0,1,12,23Zm.5-20.68V21.66c1.4-.9,4.44-3.56,4.44-9.72S13.9,3.19,12.5,2.32Z"}),React.createElement("path",{fill:"#111111",d:"M1.5,11.5h21v1H1.5Z"}));t.default=n},261:function(e,t,n){var r=c(n(847)),a=c(n(280)),l=c(n(862)),o=c(n(581));function c(e){return e&&e.__esModule?e:{default:e}}n(163);var i=wp.i18n.__,s=wp.blocks.registerBlockType,u=wp.element.Fragment;s("reseller-store/domain-search",{title:i("Domain Search","reseller-store"),description:i("A search form for domain registrations.","reseller-store"),icon:{src:o.default},category:"reseller-store",keywords:["reseller","domain","search"],attributes:r.default,edit:function(e){return React.createElement(u,null,React.createElement(a.default,e),React.createElement(l.default,e))},save:function(){return null}})},280:function(e,t){Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var n=wp.i18n.__,r=wp.blockEditor.InspectorControls,a=wp.element.Fragment,l=wp.components,o=l.CheckboxControl,c=l.PanelBody,i=l.RangeControl,s=l.SelectControl,u=l.TextControl;t.default=function(e){var t=e.attributes,l=e.setAttributes;return React.createElement(r,null,React.createElement("p",null," ",n("Domain Search","reseller-store")),React.createElement(c,null,React.createElement(u,{label:n("Title","reseller-store"),value:t.title,onChange:function(e){return l({title:e})}})),React.createElement(c,null,React.createElement(u,{label:n("Placeholder","reseller-store"),value:t.text_placeholder,onChange:function(e){return l({text_placeholder:e})}})),React.createElement(c,null,React.createElement(u,{label:n("Search Button","reseller-store"),value:t.text_search,onChange:function(e){return l({text_search:e})}})),React.createElement(c,null,React.createElement(s,{label:n("Search Type","reseller-store"),onChange:function(e){return l({search_type:e})},value:t.search_type,options:[{value:"standard",label:n("Standard Domain Search","reseller-store")},{value:"advanced",label:n("Advanced Domain Search","reseller-store")},{value:"transfer",label:n("Transfer Domain","reseller-store")}]}),"advanced"===t.search_type&&React.createElement(a,null,React.createElement(i,{beforeIcon:"arrow-left-alt2",afterIcon:"arrow-right-alt2",label:n("On page search result size","reseller-store"),value:t.page_size,onChange:function(e){return l({page_size:e})},min:1,max:30}),React.createElement(o,{label:n("Display results in a modal","reseller-store"),checked:t.modal,onChange:function(e){return l({modal:e})}})),"advanced"!==t.search_type&&React.createElement(a,null,React.createElement(o,{label:n("Display results in a new tab","reseller-store"),checked:t.new_tab,onChange:function(e){return l({new_tab:e})}}))))}},488:function(e,t){Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var n=wp.i18n.__,r={post_id:{type:"string"},image_size:{type:"string",default:"icon"},show_title:{type:"boolean",default:!0},show_content:{type:"boolean",default:!0},show_price:{type:"boolean",default:!0},button_label:{type:"string",default:n("Add to cart","reseller-store")},button_new_tab:{type:"boolean",default:!1},content_height:{type:"number",default:250},text_more:{type:"string",default:n("More info","reseller-store")},redirect:{type:"boolean",default:!0},layout_type:{type:"string",default:"default"}};t.default=r},805:function(e,t,n){Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=l(n(467)),a=l(n(423));function l(e){return e&&e.__esModule?e:{default:e}}var o=wp.element.Fragment;t.default=function(e){return React.createElement(o,null,React.createElement(r.default,e),React.createElement(a.default,e))}},423:function(e,t,n){Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r,a=(r=n(349))&&r.__esModule?r:{default:r},l=wp.i18n.__,o=wp.components,c=o.Button,i=o.Spinner,s=wp.element.Fragment;t.default=function(e){var t=e.media,n=e.post,r=e.attributes;if(!n)return React.createElement("p",null,React.createElement(i,null),l("Loading Product Info","reseller-store"));var o={overflow:"hidden",height:r.content_height>0?"".concat(r.content_height,"px"):void 0};return React.createElement(s,null,React.createElement(a.default,{post:n,media:t,size:r.image_size}),React.createElement("div",{className:"rstore-product-header"},r.show_title&&React.createElement("h4",{className:"widget-title"},n.title.rendered),"default"===r.layout_type&&r.show_price&&React.createElement("div",{dangerouslySetInnerHTML:{__html:n.price_html}}),"default"===r.layout_type&&r.button_label.length>0&&React.createElement(c,{className:"rstore-add-to-cart button btn btn-primary"},r.button_label),r.show_content&&React.createElement("div",{style:o,className:"rstore-product-summary",dangerouslySetInnerHTML:{__html:n.content.rendered}}),r.show_content&&r.content_height>0&&React.createElement(c,{className:"link",isLink:!0},r.text_more),"classic"===r.layout_type&&r.show_price&&React.createElement("div",{dangerouslySetInnerHTML:{__html:n.price_html}}),"classic"===r.layout_type&&r.button_label.length>0&&React.createElement(c,{className:"rstore-add-to-cart button btn btn-primary"},r.button_label)))}},467:function(e,t){Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var n=wp.i18n.__,r=wp.blockEditor.InspectorControls,a=wp.components,l=a.CheckboxControl,o=a.PanelBody,c=a.RangeControl,i=a.SelectControl,s=a.Spinner,u=a.TextControl;t.default=function(e){var t=e.posts,a=e.media,d=e.attributes,f=e.setAttributes;if(!t)return React.createElement(r,null,React.createElement(s,null),n("Loading Posts","reseller-store"));if(0===t.length)return React.createElement("p",null,n("No products found","reseller-store"));var p=t.map((function(e){return{value:e.id,label:e.title.rendered}})),m=[];return a&&((m=Object.keys(a.media_details.sizes).map((function(e){return{value:e,label:e}}))).splice(0,0,{value:"icon",label:n("Product Icon","reseller-store")}),m.push({value:"none",label:n("Hide image","reseller-store")})),React.createElement(r,null,React.createElement(o,null,React.createElement(i,{label:n("Select Product","reseller-store"),onChange:function(e){return f({post_id:e.toString()})},value:d.post_id,options:p})),React.createElement(o,null,React.createElement(i,{label:n("Image Size","reseller-store"),onChange:function(e){return f({image_size:e})},value:d.image_size,options:m})),React.createElement(o,null,React.createElement(u,{label:n("Button","reseller-store"),value:d.button_label,onChange:function(e){return f({button_label:e})}}),React.createElement(l,{label:n("Display results in a new tab","reseller-store"),checked:d.button_new_tab,onChange:function(e){f({button_new_tab:e})}})),React.createElement(o,null,React.createElement(l,{label:n("Show product title","reseller-store"),checked:d.show_title,onChange:function(e){f({show_title:e})}}),React.createElement(l,{label:n("Show product price","reseller-store"),checked:d.show_price,onChange:function(e){f({show_price:e})}}),React.createElement(l,{label:n("Show post content","reseller-store"),checked:d.show_content,onChange:function(e){f({show_content:e})}})),d.show_content&&React.createElement(o,null,React.createElement(l,{label:n("Set content height","reseller-store"),checked:d.content_height>0,onChange:function(e){f({content_height:e?250:0})}}),d.content_height>0&&React.createElement("div",null,React.createElement(c,{beforeIcon:"arrow-left-alt2",afterIcon:"arrow-right-alt2",label:n("Product content height","reseller-store"),value:d.content_height,onChange:function(e){return f({content_height:e})},min:1,max:500}),React.createElement(u,{label:n("More info button text","reseller-store"),value:d.text_more,onChange:function(e){return f({text_more:e})}}))),React.createElement(o,null,React.createElement(l,{label:n("Redirect to cart after adding item","reseller-store"),checked:d.redirect,onChange:function(e){f({redirect:e})}})),React.createElement(i,{label:n("Layout Type","reseller-store"),onChange:function(e){return f({layout_type:e})},value:d.layout_type,options:[{value:"default",label:n("Default","reseller-store")},{value:"classic",label:n("Classic","reseller-store")}]}))}},349:function(e,t){Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;t.default=function(e){var t=e.post,n=e.media,r=e.size;return"icon"===r?React.createElement("div",{dangerouslySetInnerHTML:{__html:t.icon_html}}):n&&"none"!==r&&r in n.media_details.sizes?React.createElement("img",{title:n.title.rendered,alt:n.alt_text,src:n.media_details.sizes[r].source_url}):null}},843:function(e,t){Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var n=React.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24"},React.createElement("title",null,"Business Ads"),React.createElement("path",{fill:"#ffffff",d:"M19.5,4.5H2.5a1,1,0,0,0-1,1v12a1,1,0,0,0,1,1h17a1,1,0,0,0,1-1V5.5A1,1,0,0,0,19.5,4.5Z"}),React.createElement("path",{fill:"#3690FF",d:"M20.5,5.5v3H1.5v-3a1,1,0,0,1,1-1h17A1,1,0,0,1,20.5,5.5Z"}),React.createElement("path",{fill:"#111111",d:"M12.5,19H2.5A1.5,1.5,0,0,1,1,17.5V5.5A1.5,1.5,0,0,1,2.5,4h17A1.5,1.5,0,0,1,21,5.5v4a.5.5,0,1,1-1,0v-4a.5.5,0,0,0-.5-.5H2.5a.5.5,0,0,0-.5.5v12a.5.5,0,0,0,.5.5h10a.5.5,0,0,1,0,1Z"}),React.createElement("path",{fill:"#111111",d:"M20.5,9H1.5a.5.5,0,0,1,0-1h19a.5.5,0,0,1,0,1ZM14,6.5a.5.5,0,1,1,.5.5.5.5,0,0,1-.5-.5m2,0a.5.5,0,1,1,.5.5.5.5,0,0,1-.5-.5m2,0a.5.5,0,1,1,.5.5.5.5,0,0,1-.5-.5"}),React.createElement("path",{fill:"#3690FF",d:"M22.5,14H20l1.83-2.5H18L15.25,15h2L15,19.5Z"}),React.createElement("path",{fill:"#000000",d:"M15,20a.5.5,0,0,1-.45-.72l1.87-3.78H15.25a.5.5,0,0,1-.39-.81l2.75-3.5A.5.5,0,0,1,18,11h3.88a.5.5,0,0,1,.4.8L21,13.5H22.5a.5.5,0,0,1,.3.9l-7.5,5.5A.5.5,0,0,1,15,20Zm1.28-5.5h1a.5.5,0,0,1,.45.72l-1.32,2.66L21,14.5H20a.5.5,0,0,1-.4-.8L20.89,12H18.24l-2,2.5Z"}),React.createElement("path",{fill:"#cccccc",d:"M12,13.5H4.5a1,1,0,0,1-1-1v-1a1,1,0,0,1,1-1H12a1,1,0,0,1,1,1v1A1,1,0,0,1,12,13.5Zm-2.5,2h-1a.5.5,0,0,1,0-1h1a.5.5,0,0,1,0,1Zm-3,0h-2a.5.5,0,0,1,0-1h2a.5.5,0,0,1,0,1Z"}),React.createElement("path",{fill:"#111111",d:"M19.5,19a.5.5,0,1,1,0-1,.5.5,0,0,0,.5-.5.5.5,0,0,1,1,0A1.5,1.5,0,0,1,19.5,19Z"}));t.default=n},603:function(e,t,n){var r=c(n(843)),a=n(657),l=c(n(488)),o=c(n(805));function c(e){return e&&e.__esModule?e:{default:e}}n(958);var i=wp.i18n.__;(0,wp.blocks.registerBlockType)("reseller-store/product",{title:i("Product","reseller-store"),description:i("Display a product post","reseller-store"),icon:{src:r.default},category:"reseller-store",keywords:["product","reseller"],attributes:l.default,edit:(0,a.productSelector)((0,a.mediaSelector)(o.default)),save:function(){return null}})},657:function(e,t){Object.defineProperty(t,"__esModule",{value:!0}),t.productSelector=t.mediaSelector=void 0;var n=wp.data.withSelect,r=n((function(e,t){var n=t.post;return n&&n.featured_media?{media:e("core").getEntityRecord("root","media",n.featured_media)}:{}}));t.mediaSelector=r;var a=n((function(e,t){var n=t.attributes,r=e("core").getEntityRecords("postType","reseller_product",{per_page:100});if(r&&r.length){if(void 0===n.post_id)return{posts:r,post:r[0]};var a=r.find((function(e){return e.id.toString()===n.post_id}));return void 0===a?{posts:r,post:r[0]}:{posts:r,post:a}}return{}}));t.productSelector=a},853:function(){wp.i18n.setLocaleData({"":{}},"reseller-store")},511:function(e,t,n){var r=n(537),a=n.n(r),l=n(645),o=n.n(l)()(a());o.push([e.id,".rstore-domain input.search-field{width:68%;height:30px}.rstore-domain button.search-submit{height:32px}","",{version:3,sources:["webpack://./.dev/src/blocks/domain-search/editor.scss"],names:[],mappings:"AAEE,kCACC,SAAA,CACA,WAAA,CAID,oCACC,WAAA",sourcesContent:[".rstore-domain {\n\tinput {\n\t\t&.search-field {\n\t\t\twidth: 68%;\n\t\t\theight: 30px;\n\t\t}\n\t}\n\tbutton {\n\t\t&.search-submit {\n\t\t\theight: 32px;\n\t\t}\n\t}\n}\n"],sourceRoot:""}]),t.Z=o},132:function(e,t,n){var r=n(537),a=n.n(r),l=n(645),o=n.n(l)()(a());o.push([e.id,".rstore-product-icons svg{width:8rem;display:block;margin-left:auto;margin-right:auto}.rstore-product-icons svg .svg-fill-primary-o{fill:#3690ff}.rstore-product-icons svg .svg-fill-black{fill:#000}.rstore-product-icons svg .svg-fill-gray-light{fill:#aea99c}.rstore-product-icons svg .svg-fill-white{fill:#fff}.rstore-product-icons svg .svg-fill-wordpress{fill:#00749a}.rstore-product-icons svg .svg-fill-cpanel{fill:#f26c31}.rstore-product-icons svg .svg-fill-windows{fill:#f22307}","",{version:3,sources:["webpack://./.dev/src/blocks/product/editor.scss","webpack://./.dev/sass/partials/icon-colors.scss"],names:[],mappings:"AAEC,0BACC,UAAA,CACA,aAAA,CACA,gBAAA,CACA,iBAAA,CCNF,8CACC,YAAA,CAGD,0CACC,SAAA,CAGD,+CACC,YAAA,CAGD,0CACC,SAAA,CAGD,8CACC,YAAA,CAGD,2CACC,YAAA,CAGD,4CACC,YAAA",sourcesContent:['.rstore-product-icons {\n\n\tsvg {\n\t\twidth: 8rem;\n\t\tdisplay: block;\n\t\tmargin-left: auto;\n\t\tmargin-right: auto;\n\n\t\t@import "../../../sass/partials/icon-colors";\n\t}\n}\n',".svg-fill-primary-o {\n\tfill: #3690FF;\n}\n\n.svg-fill-black {\n\tfill: #000000;\n}\n\n.svg-fill-gray-light {\n\tfill: #AEA99C;\n}\n\n.svg-fill-white {\n\tfill: #FFFFFF;\n}\n\n.svg-fill-wordpress {\n\tfill: #00749A;\n}\n\n.svg-fill-cpanel {\n\tfill: #F26C31;\n}\n\n.svg-fill-windows {\n\tfill: #F22307;\n}"],sourceRoot:""}]),t.Z=o},645:function(e){e.exports=function(e){var t=[];return t.toString=function(){return this.map((function(t){var n="",r=void 0!==t[5];return t[4]&&(n+="@supports (".concat(t[4],") {")),t[2]&&(n+="@media ".concat(t[2]," {")),r&&(n+="@layer".concat(t[5].length>0?" ".concat(t[5]):""," {")),n+=e(t),r&&(n+="}"),t[2]&&(n+="}"),t[4]&&(n+="}"),n})).join("")},t.i=function(e,n,r,a,l){"string"==typeof e&&(e=[[null,e,void 0]]);var o={};if(r)for(var c=0;c0?" ".concat(u[5]):""," {").concat(u[1],"}")),u[5]=l),n&&(u[2]?(u[1]="@media ".concat(u[2]," {").concat(u[1],"}"),u[2]=n):u[2]=n),a&&(u[4]?(u[1]="@supports (".concat(u[4],") {").concat(u[1],"}"),u[4]=a):u[4]="".concat(a)),t.push(u))}},t}},537:function(e){e.exports=function(e){var t=e[1],n=e[3];if(!n)return t;if("function"==typeof btoa){var r=btoa(unescape(encodeURIComponent(JSON.stringify(n)))),a="sourceMappingURL=data:application/json;charset=utf-8;base64,".concat(r),l="/*# ".concat(a," */");return[t].concat([l]).join("\n")}return[t].join("\n")}},163:function(e,t,n){n.r(t);var r=n(379),a=n.n(r),l=n(795),o=n.n(l),c=n(569),i=n.n(c),s=n(565),u=n.n(s),d=n(216),f=n.n(d),p=n(589),m=n.n(p),h=n(511),v={};v.styleTagTransform=m(),v.setAttributes=u(),v.insert=i().bind(null,"head"),v.domAPI=o(),v.insertStyleElement=f(),a()(h.Z,v),t.default=h.Z&&h.Z.locals?h.Z.locals:void 0},958:function(e,t,n){n.r(t);var r=n(379),a=n.n(r),l=n(795),o=n.n(l),c=n(569),i=n.n(c),s=n(565),u=n.n(s),d=n(216),f=n.n(d),p=n(589),m=n.n(p),h=n(132),v={};v.styleTagTransform=m(),v.setAttributes=u(),v.insert=i().bind(null,"head"),v.domAPI=o(),v.insertStyleElement=f(),a()(h.Z,v),t.default=h.Z&&h.Z.locals?h.Z.locals:void 0},379:function(e){var t=[];function n(e){for(var n=-1,r=0;r0?" ".concat(n.layer):""," {")),r+=n.css,a&&(r+="}"),n.media&&(r+="}"),n.supports&&(r+="}");var l=n.sourceMap;l&&"undefined"!=typeof btoa&&(r+="\n/*# sourceMappingURL=data:application/json;base64,".concat(btoa(unescape(encodeURIComponent(JSON.stringify(l))))," */")),t.styleTagTransform(r,e,t.options)}(t,e,n)},remove:function(){!function(e){if(null===e.parentNode)return!1;e.parentNode.removeChild(e)}(t)}}}},589:function(e){e.exports=function(e,t){if(t.styleSheet)t.styleSheet.cssText=e;else{for(;t.firstChild;)t.removeChild(t.firstChild);t.appendChild(document.createTextNode(e))}}}},t={};function n(r){var a=t[r];if(void 0!==a)return a.exports;var l=t[r]={id:r,exports:{}};return e[r](l,l.exports,n),l.exports}n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,{a:t}),t},n.d=function(e,t){for(var r in t)n.o(t,r)&&!n.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.nc=void 0,n(853),n(603),n(261)}(); //# sourceMappingURL=editor.blocks.min.js.map \ No newline at end of file diff --git a/class-plugin.php b/class-plugin.php index 18c13513..fa65ab8a 100644 --- a/class-plugin.php +++ b/class-plugin.php @@ -33,7 +33,7 @@ final class Plugin { * * @var string */ - const VERSION = '2.2.12'; + const VERSION = '2.2.14'; /** * Plugin prefix. diff --git a/includes/functions/product-functions.php b/includes/functions/product-functions.php index caba29e7..e8f2c1c4 100644 --- a/includes/functions/product-functions.php +++ b/includes/functions/product-functions.php @@ -59,24 +59,15 @@ function rstore_get_product_list() { array( 'post_type' => \Reseller_Store\Post_Type::SLUG, 'post_status' => 'publish', - 'nopaging' => true, // get a list of every product. + 'nopaging' => true, ) ); $products = array(); - - while ( $query->have_posts() ) { - - $query->the_post(); - - $id = get_the_ID(); - - $products[ strval( $id ) ] = esc_html( get_the_title() ); - + foreach ( $query->posts as $post ) { + $products[ strval( $post->ID ) ] = esc_html( get_the_title( $post->ID ) ); } - wp_reset_postdata(); - return $products; } diff --git a/includes/functions/template-functions.php b/includes/functions/template-functions.php index 5c72d6e9..af786c8a 100644 --- a/includes/functions/template-functions.php +++ b/includes/functions/template-functions.php @@ -95,7 +95,7 @@ function rstore_price( $post = null, $echo = false ) { * * @return string|null */ -function rstore_add_to_cart_form( $post, $echo = false, $button_label = null, $text_cart = null, $redirect = true ) { +function rstore_add_to_cart_form( $post, $echo = false, $button_label = null, $button_new_tab = null, $text_cart = null, $redirect = true ) { $post = get_post( $post ); @@ -132,10 +132,12 @@ function rstore_add_to_cart_form( $post, $echo = false, $button_label = null, $t $items = json_encode( array( $data ) ); $cart_form = sprintf( - '
', + '
%s
', $cart_url, + $button_new_tab ? ' target="_blank"' : '', $items, - esc_html( $button_label ) + esc_html( $button_label ), + $button_new_tab ? '' : '
' ); } else { @@ -209,7 +211,7 @@ function rstore_append_add_to_cart_form( $content ) { $content .= rstore_price( $post->ID ); $redirect = ! ( (bool) rstore_get_product_meta( $post->ID, 'skip_cart_redirect' ) ); - $content .= rstore_add_to_cart_form( $post->ID, false, null, null, $redirect ); + $content .= rstore_add_to_cart_form( $post->ID, false, null, null, null, $redirect ); } diff --git a/includes/modules/rstore-fl-domain-simple.php b/includes/modules/rstore-fl-domain-simple.php index 89b1f313..099cb6bd 100644 --- a/includes/modules/rstore-fl-domain-simple.php +++ b/includes/modules/rstore-fl-domain-simple.php @@ -64,6 +64,15 @@ public function __construct() { 'label' => __( 'Button', 'reseller-store' ), 'default' => __( 'Search', 'reseller-store' ), ), + 'new_tab' => array( + 'type' => 'select', + 'label' => __( 'Display results in a new tab', 'reseller-store' ), + 'default' => '0', + 'options' => array( + '1' => __( 'Yes', 'reseller-store' ), + '0' => __( 'No', 'reseller-store' ), + ), + ), ), ), ), diff --git a/includes/modules/rstore-fl-domain-transfer.php b/includes/modules/rstore-fl-domain-transfer.php index a4404f2e..285ae1d8 100644 --- a/includes/modules/rstore-fl-domain-transfer.php +++ b/includes/modules/rstore-fl-domain-transfer.php @@ -64,6 +64,15 @@ public function __construct() { 'label' => __( 'Button', 'reseller-store' ), 'default' => __( 'Transfer', 'reseller-store' ), ), + 'new_tab' => array( + 'type' => 'select', + 'label' => __( 'Display results in a new tab', 'reseller-store' ), + 'default' => '0', + 'options' => array( + '1' => __( 'Yes', 'reseller-store' ), + '0' => __( 'No', 'reseller-store' ), + ), + ), ), ), ), diff --git a/includes/modules/rstore-fl-product.php b/includes/modules/rstore-fl-product.php index d058b334..1166a702 100644 --- a/includes/modules/rstore-fl-product.php +++ b/includes/modules/rstore-fl-product.php @@ -84,6 +84,15 @@ public function __construct() { 'description' => __( 'Leave blank to hide button', 'reseller-store' ), 'default' => __( 'Add to cart', 'reseller-store' ), ), + 'button_new_tab' => array( + 'type' => 'select', + 'label' => __( 'Open Results In A New Tab', 'reseller-store' ), + 'default' => '0', + 'options' => array( + '1' => __( 'Yes', 'reseller-store' ), + '0' => __( 'No', 'reseller-store' ), + ), + ), 'show_title' => array( 'type' => 'select', 'label' => __( 'Title', 'reseller-store' ), diff --git a/includes/modules/rstore-vc-domain-simple.php b/includes/modules/rstore-vc-domain-simple.php index c86f6534..b4f93f46 100644 --- a/includes/modules/rstore-vc-domain-simple.php +++ b/includes/modules/rstore-vc-domain-simple.php @@ -80,6 +80,18 @@ public function vc_mapping() { 'weight' => 0, ), + array( + 'type' => 'checkbox', + 'holder' => 'div', + 'class' => 'text-class', + 'heading' => __( 'Display results in a new tab', 'reseller-store' ), + 'param_name' => 'new_tab', + 'value' => array( + __( 'Show', 'reseller-store' ) => 1, + ), + 'group' => 'Results', + ), + ), ) ); diff --git a/includes/modules/rstore-vc-domain-transfer.php b/includes/modules/rstore-vc-domain-transfer.php index dcf3b8a8..ea6e838d 100644 --- a/includes/modules/rstore-vc-domain-transfer.php +++ b/includes/modules/rstore-vc-domain-transfer.php @@ -83,6 +83,18 @@ public function vc_mapping() { 'group' => 'Custom Group', ), + array( + 'type' => 'checkbox', + 'holder' => 'div', + 'class' => 'text-class', + 'heading' => __( 'Display results in a new tab', 'reseller-store' ), + 'param_name' => 'new_tab', + 'value' => array( + __( 'Show', 'reseller-store' ) => 1, + ), + 'group' => 'Results', + ), + ), ) ); diff --git a/includes/modules/rstore-vc-product.php b/includes/modules/rstore-vc-product.php index 5f7d6bf6..bf34afd7 100644 --- a/includes/modules/rstore-vc-product.php +++ b/includes/modules/rstore-vc-product.php @@ -86,6 +86,18 @@ public function vc_mapping() { 'group' => __( 'Display', 'reseller-store' ), ), + array( + 'type' => 'checkbox', + 'holder' => 'div', + 'class' => 'text-class', + 'heading' => __( 'Open Results In A New Tab', 'reseller-store' ), + 'param_name' => 'new_tab', + 'value' => array( + __( 'No', 'reseller-store' ) => 0, + ), + 'group' => __( 'Display', 'reseller-store' ), + ), + array( 'type' => 'checkbox', 'holder' => 'div', diff --git a/includes/widgets/class-domain-simple.php b/includes/widgets/class-domain-simple.php index aa10e92f..927d5c56 100644 --- a/includes/widgets/class-domain-simple.php +++ b/includes/widgets/class-domain-simple.php @@ -96,8 +96,13 @@ public function widget( $args, $instance ) { } + $target = ''; + if ( ! empty($data['new_tab'])) { + $target = ' target="_blank"'; + } + ?> -