From 7f71b2d7a439d65654af4a84d8b41c6192f60702 Mon Sep 17 00:00:00 2001 From: Vishal Telangre Date: Thu, 29 Apr 2021 15:03:44 +0530 Subject: [PATCH 1/7] Add support to specify regular & affiliated product URLs using Gumroad Block --- gumroad/src/gumroad-block/block.js | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/gumroad/src/gumroad-block/block.js b/gumroad/src/gumroad-block/block.js index f737c09..4003ef8 100644 --- a/gumroad/src/gumroad-block/block.js +++ b/gumroad/src/gumroad-block/block.js @@ -24,7 +24,7 @@ const { const gumroadURL = 'https://gumroad.com/l/demo'; const defaultID = 'demo'; -const gumroadURLRegex = /(https:\/\/gumroad\.com\/l\/)|(https:\/\/gumroad\.com\/)|(https:\/\/gum\.co\/l\/)|(https:\/\/gum\.co\/)/g; +const gumroadURLRegex = /(https:\/\/gumroad\.com\/a\/.+\/)|(https:\/\/gumroad\.com\/l\/)|(https:\/\/gumroad\.com\/)|(https:\/\/gum\.co\/l\/)|(https:\/\/gum\.co\/)/g; class GumControls extends Component { constructor( props ) { @@ -223,6 +223,12 @@ registerBlockType( 'gumroad/gumroad-block', { var urlString = url, wantedString = '', classesString = classes; + // Embed widget doesn't work with alias domain URLs + urlString = urlString + .replace("gum.co/a/", "gumroad.com/a/") + .replace("gum.co/l/", "gumroad.com/l/") + .replace("gum.co/", "gumroad.com/l/"); + // Wanted if (wanted == 'true' || wanted == true) { wantedString = '?wanted=true'; @@ -237,7 +243,7 @@ registerBlockType( 'gumroad/gumroad-block', { if ( type == 'embed' ) { return ( // return if link behavior normal -
+
) } else if ( type == 'overlay' ) { // overlay links From d5236e08cada1df49f0b3e0286a9bc35877f1638 Mon Sep 17 00:00:00 2001 From: Vishal Telangre Date: Thu, 29 Apr 2021 18:22:51 +0530 Subject: [PATCH 2/7] Also, support 'url' attribute in the shortcode that accepts both regular and affiliated product URLs --- gumroad/includes/misc-functions.php | 8 ++++---- gumroad/includes/scanner.php | 2 +- gumroad/includes/shortcodes.php | 16 ++++++++++++++-- 3 files changed, 19 insertions(+), 7 deletions(-) diff --git a/gumroad/includes/misc-functions.php b/gumroad/includes/misc-functions.php index 726cca3..f7080fd 100644 --- a/gumroad/includes/misc-functions.php +++ b/gumroad/includes/misc-functions.php @@ -12,7 +12,7 @@ * */ function gum_link( $args ) { - $url = 'https://gum.co/' . $args['id']; + $url = $args['url']; $wanted = ''; $button = ''; @@ -34,7 +34,7 @@ function gum_link( $args ) { * */ function gum_overlay( $args ) { - $url = 'https://gum.co/' . $args['id']; + $url = $args['url']; $wanted = ''; $button = ''; @@ -55,8 +55,8 @@ function gum_overlay( $args ) { * @since 1.1.0 * */ -function gum_embed( $id ) { - return sprintf( '
', esc_attr( $id ) ); +function gum_embed( $args ) { + return sprintf( '
', esc_attr( $args['url'] ) ); } /** diff --git a/gumroad/includes/scanner.php b/gumroad/includes/scanner.php index 147eea1..81a7ba5 100644 --- a/gumroad/includes/scanner.php +++ b/gumroad/includes/scanner.php @@ -24,7 +24,7 @@ function gum_post_scanner( $post_object ) { function scanner( $post_content ) { // counts to see if we find any gumroad product links. - if (count(preg_grep('/(gumroad.com\/l\/[[:alnum:]]|gum.co\/[[:alnum:]])/', explode("\n", $post_content))) > 0) { + if (count(preg_grep('/(gumroad.com\/a\/.+\/[[:alnum:]].*|gumroad.com\/l\/[[:alnum:]]|gum.co\/[[:alnum:]])/', explode("\n", $post_content))) > 0) { gum_load_js('overlay'); } if (count(preg_grep('/(class=\"gumroad-product-embed\")/', explode("\n", $post_content))) > 0) { diff --git a/gumroad/includes/shortcodes.php b/gumroad/includes/shortcodes.php index 4f55a33..8541fbe 100644 --- a/gumroad/includes/shortcodes.php +++ b/gumroad/includes/shortcodes.php @@ -20,6 +20,7 @@ function gum_gumroad_shortcode( $attr ) { $defaults = array( 'id' => '', + 'url' => '', 'type' => 'none', // none, overlay, embed 'class' => '', 'text' => 'I want this!', @@ -33,11 +34,22 @@ function gum_gumroad_shortcode( $attr ) { $attr = array_merge( $defaults, $attr ); - if( ! empty( $id ) ) { + if( ! empty( $id ) || ! empty( $url ) ) { // link behaviour + if ( ! empty( $url ) ) { + // Embed widget doesn't work with alias domain URLs + $attr['url'] = str_replace('gum.co/a/', 'gumroad.com/a/', $attr['url']); + $attr['url'] = str_replace('gum.co/l/', 'gumroad.com/l/', $attr['url']); + $attr['url'] = str_replace('gum.co/', 'gumroad.com/l/', $attr['url']); + } + + if ( empty( $attr['url'] ) && ! empty( $id ) ) { + $attr['url'] = 'https://gumroad.com/l/' . $id; + } + if ( $type == 'embed') { // Embed - $html = gum_embed( $id ); + $html = gum_embed( $attr ); } else if ( $type == 'overlay' ) { // Overlay $html = gum_overlay( $attr ); } else { // Default From 3e965dae16e2c27fceced42ffe59bc11f55bf93d Mon Sep 17 00:00:00 2001 From: Vishal Telangre Date: Fri, 30 Apr 2021 11:02:35 +0530 Subject: [PATCH 3/7] Update documentation and help guide --- gumroad/README.txt | 22 +++++++---- gumroad/assets/images/gumroad-wp-007.png | Bin 0 -> 109166 bytes gumroad/views/admin.php | 46 ++++++++++++++++------- 3 files changed, 46 insertions(+), 22 deletions(-) create mode 100644 gumroad/assets/images/gumroad-wp-007.png diff --git a/gumroad/README.txt b/gumroad/README.txt index 16ea74f..6fded27 100644 --- a/gumroad/README.txt +++ b/gumroad/README.txt @@ -2,8 +2,8 @@ Contributors: karloscarweber, pderksen, nickyoung87, gumroad Tags: gumroad, gumroad product pages, gumroad overlay, gumroad embed, ecommerce, e-commerce, pdf, javascript, overlay, embed Requires at least: 3.9 -Tested up to: 4.9.6 -Stable tag: 2.1 +Tested up to: 5.7.1 +Stable tag: 3.0.0 License: GPLv2 or later License URI: http://www.gnu.org/licenses/gpl-2.0.html @@ -11,21 +11,23 @@ Make your Gumroad products available for purchase right within WordPress. == Description == -This plugin lets you embed Gumroad into your website, using our Overlay and Embed widgets: https://gumroad.com/widgets +This plugin lets you embed Gumroad into your website, using our Overlay and Embed widgets: https://gumroad.com/widgets. Zero coding knowledge is required. Once installed, all links to Gumroad will automatically open the Gumroad Overlay (lightbox popup). -For more information on how this plugin works, you can see a video on our Overlay here: https://www.youtube.com/watch?v=u80Ey6lSRyE +For more information on how this plugin works, you can see a video on our Overlay here: https://www.youtube.com/watch?v=u80Ey6lSRyE. You can also use shortcodes: -Basic overlay example: `[gumroad id="DviQY"]` +Basic overlay example: `[gumroad url="https://gumroad.com/l/DviQY"]` -Basic embed example: `[gumroad id="GAPdj" type="embed"]` +Basic embed example: `[gumroad url="https://gumroad.com/l/GAPdj" type="embed"]` -Overlay that will automatically show the payment form: `[gumroad id="DviQY" text="Purchase Item" wanted="true"]` +Overlay that will automatically show the payment form: `[gumroad url="https://gumroad.com/l/DviQY" text="Purchase Item" wanted="true"]` -The ID ("GAPdJ") is the same as your Gumroad product URL ("gumroad.com/l/GAPdJ"). See the full documentation in Settings > Gumroad after the plugin is activated. +Overlay for an affiliated product: `[gumroad url="https://gumroad.com/a/919237747/llNDe" type="overlay"]` + +See the full documentation in Settings > Gumroad after the plugin is activated. == Installation == @@ -69,6 +71,10 @@ See the official Gumroad [overlay](https://gumroad.com/overlay) or [embed](https == Changelog == += 3.0.0 - April 30, 2021 = + +* Add support for specifying both regular and affiliated product URLs in Gumroad Block as well as short codes. + = 1.2.4 - January 30, 2019 = * Add Gutenberg Blocks diff --git a/gumroad/assets/images/gumroad-wp-007.png b/gumroad/assets/images/gumroad-wp-007.png new file mode 100644 index 0000000000000000000000000000000000000000..7016aedf044670a27b3655b657eae5e28286f2fc GIT binary patch literal 109166 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 z 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 Shortcodes -

For version 5.0:

+

For WordPress version 5.0:

Open the Editor and either type / or click on the plus icon and then choose to add a shortcode.

@@ -55,21 +55,27 @@

-

With the Shortcode Block you can use shortcodes normally like you would in version 4.9.

+

With the Shortcode Block you can use shortcodes normally like you would in WordPress version 4.9.

- +

-

For version 4.9.2 and lower:

+

For WordPress version 4.9.2 and lower:

-

Use the shortcode [gumroad id="DviQY"] to add a normal link (anchor tag) to a Gumroad product with the text "I want this!". Clicking this link will not trigger the overlay. +

Use the shortcode [gumroad url="https://gumroad.com/l/DviQY"] to add a normal link (anchor tag) to a Gumroad product with the text "I want this!". Clicking this link will not trigger the overlay. -

Use the shortcode [gumroad id="DviQY" button="true"] to add a button to a Gumroad product. This button will be purely cosmetic. +

Use the shortcode [gumroad url="https://gumroad.com/l/DviQY" button="true"] to add a button to a Gumroad product. This button will be purely cosmetic. -

Use the shortcode [gumroad id="DviQY" type="overlay"] to add a link to a Gumroad product that will open in an overlay.

+

Use the shortcode [gumroad url="https://gumroad.com/l/DviQY" type="overlay"] to add a link to a Gumroad product that will open in an overlay.

-

Use the shortcode [gumroad id="GAPdj" type="embed"] to add an embedded Gumroad product.

+

Use the shortcode [gumroad url="https://gumroad.com/l/GAPdj" type="embed"] to add an embedded Gumroad product.

+ +

Similarly,

+ +

Use the shortcode [gumroad url="https://gumroad.com/a/919237747/llNDe" type="overlay"] to add a link to an affiliated Gumroad product that will open in an overlay.

+ +

Use the shortcode [gumroad url="https://gumroad.com/a/919237747/llNDe" type="embed"] to add an embedded affiliated Gumroad product.

Available attributes for a shortcode:

@@ -77,6 +83,7 @@ Attribute + Required? Description Options Default @@ -84,37 +91,48 @@ - id - Gumroad product ID - Any valid Gumroad product ID, What is my Gumroad product ID? + url + Yes + Gumroad product URL + + + none type + No The type of product link you want to show. none, overlay, embed none text + No Text for the link or button (applies to overlay only). Any text I want this! wanted + No If true, user will be sent directly to the checkout form (applies to overlay only). true if wanted, otherwise leave unspecified False button + No An option to change the gumroad link into a Gumroad button. true, false False class + No An optional class that you can add to gumroad buttons and links Text including letters, numbers, and dashes. A space separates multiple classes none @@ -125,17 +143,17 @@

More examples

    -
  • [gumroad id="DviQY" button="true" type="overlay" text="Purchase Item" wanted="true"]
  • +
  • [gumroad url="https://gumroad.com/l/DviQY" button="true" type="overlay" text="Purchase Item" wanted="true"]

Automatic linking and embeds

-

You can forego using shortcodes entirely, and links to Gumroad products will automatically trigger the overlay. Embed code copied from the Gumroad product widget will also work without including the script tag:

+

You can forego using shortcodes entirely, and links to Gumroad products will automatically trigger the overlay. Embed code copied from the Gumroad product widget will also work without including the script tag:

- <div class="gumroad-product-embed" data-gumroad-product-id="DviQY"><a href="https://gumroad.com/l/qLlJJ">Loading...</a></div> + <div class="gumroad-product-embed"><a href="https://gumroad.com/l/DviQY">Loading...</a></div>

From 6c17c9a9a04ac1301c38ae853a4cc5eee547999c Mon Sep 17 00:00:00 2001 From: Vishal Telangre Date: Fri, 30 Apr 2021 12:30:11 +0530 Subject: [PATCH 4/7] Produce distribution build --- gumroad/dist/blocks.build.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gumroad/dist/blocks.build.js b/gumroad/dist/blocks.build.js index 7d76a48..2ec8551 100644 --- a/gumroad/dist/blocks.build.js +++ b/gumroad/dist/blocks.build.js @@ -1 +1 @@ -!function(e){function t(r){if(n[r])return n[r].exports;var o=n[r]={i:r,l:!1,exports:{}};return e[r].call(o.exports,o,o.exports,t),o.l=!0,o.exports}var n={};t.m=e,t.c=n,t.d=function(e,n,r){t.o(e,n)||Object.defineProperty(e,n,{configurable:!1,enumerable:!0,get:r})},t.n=function(e){var n=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(n,"a",n),n},t.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},t.p="",t(t.s=0)}([function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});n(1)},function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!==typeof t&&"function"!==typeof t?e:t}function a(e,t){if("function"!==typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var l=n(2),u=(n.n(l),function(){function e(e,t){for(var n=0;n Date: Fri, 30 Apr 2021 12:30:39 +0530 Subject: [PATCH 5/7] Bump version to 3.0.0 --- gumroad/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gumroad/package.json b/gumroad/package.json index 8994cae..38e45cf 100644 --- a/gumroad/package.json +++ b/gumroad/package.json @@ -1,6 +1,6 @@ { "name": "wp-gumroad", - "version": "2.1.0", + "version": "3.0.0", "private": true, "scripts": { "start": "cgb-scripts start", From 31c404b53b091a9f1ae6898bb698eec60f50ad25 Mon Sep 17 00:00:00 2001 From: Vishal Telangre Date: Mon, 3 May 2021 12:08:55 +0530 Subject: [PATCH 6/7] Apply suggestions from code review Co-authored-by: Ershad Kunnakkadan --- gumroad/includes/scanner.php | 2 +- gumroad/includes/shortcodes.php | 1 - gumroad/src/gumroad-block/block.js | 3 +-- 3 files changed, 2 insertions(+), 4 deletions(-) diff --git a/gumroad/includes/scanner.php b/gumroad/includes/scanner.php index 81a7ba5..a7293b1 100644 --- a/gumroad/includes/scanner.php +++ b/gumroad/includes/scanner.php @@ -24,7 +24,7 @@ function gum_post_scanner( $post_object ) { function scanner( $post_content ) { // counts to see if we find any gumroad product links. - if (count(preg_grep('/(gumroad.com\/a\/.+\/[[:alnum:]].*|gumroad.com\/l\/[[:alnum:]]|gum.co\/[[:alnum:]])/', explode("\n", $post_content))) > 0) { + if (count(preg_grep('/(gumroad.com\/a\/[[:alnum:]]+\/[[:alnum:]].*|gumroad.com\/l\/[[:alnum:]]|gum.co\/[[:alnum:]])/', explode("\n", $post_content))) > 0) { gum_load_js('overlay'); } if (count(preg_grep('/(class=\"gumroad-product-embed\")/', explode("\n", $post_content))) > 0) { diff --git a/gumroad/includes/shortcodes.php b/gumroad/includes/shortcodes.php index 8541fbe..60a59a7 100644 --- a/gumroad/includes/shortcodes.php +++ b/gumroad/includes/shortcodes.php @@ -40,7 +40,6 @@ function gum_gumroad_shortcode( $attr ) { if ( ! empty( $url ) ) { // Embed widget doesn't work with alias domain URLs $attr['url'] = str_replace('gum.co/a/', 'gumroad.com/a/', $attr['url']); - $attr['url'] = str_replace('gum.co/l/', 'gumroad.com/l/', $attr['url']); $attr['url'] = str_replace('gum.co/', 'gumroad.com/l/', $attr['url']); } diff --git a/gumroad/src/gumroad-block/block.js b/gumroad/src/gumroad-block/block.js index 4003ef8..c12d715 100644 --- a/gumroad/src/gumroad-block/block.js +++ b/gumroad/src/gumroad-block/block.js @@ -24,7 +24,7 @@ const { const gumroadURL = 'https://gumroad.com/l/demo'; const defaultID = 'demo'; -const gumroadURLRegex = /(https:\/\/gumroad\.com\/a\/.+\/)|(https:\/\/gumroad\.com\/l\/)|(https:\/\/gumroad\.com\/)|(https:\/\/gum\.co\/l\/)|(https:\/\/gum\.co\/)/g; +const gumroadURLRegex = /(https:\/\/gumroad\.com\/a\/[[:alnum:]]+\/)|(https:\/\/gumroad\.com\/l\/)|(https:\/\/gumroad\.com\/)|(https:\/\/gum\.co\/)/g; class GumControls extends Component { constructor( props ) { @@ -226,7 +226,6 @@ registerBlockType( 'gumroad/gumroad-block', { // Embed widget doesn't work with alias domain URLs urlString = urlString .replace("gum.co/a/", "gumroad.com/a/") - .replace("gum.co/l/", "gumroad.com/l/") .replace("gum.co/", "gumroad.com/l/"); // Wanted From a9afebd2c05220a5c68306c09cdb7ac784d22a60 Mon Sep 17 00:00:00 2001 From: Vishal Telangre Date: Mon, 3 May 2021 12:20:21 +0530 Subject: [PATCH 7/7] Use a consistent RegExp --- gumroad/includes/scanner.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gumroad/includes/scanner.php b/gumroad/includes/scanner.php index a7293b1..b3deb89 100644 --- a/gumroad/includes/scanner.php +++ b/gumroad/includes/scanner.php @@ -24,7 +24,7 @@ function gum_post_scanner( $post_object ) { function scanner( $post_content ) { // counts to see if we find any gumroad product links. - if (count(preg_grep('/(gumroad.com\/a\/[[:alnum:]]+\/[[:alnum:]].*|gumroad.com\/l\/[[:alnum:]]|gum.co\/[[:alnum:]])/', explode("\n", $post_content))) > 0) { + if (count(preg_grep('/(gumroad.com\/a\/[[:alnum:]]+\/[[:alnum:]]|gumroad.com\/l\/[[:alnum:]]|gum.co\/[[:alnum:]])/', explode("\n", $post_content))) > 0) { gum_load_js('overlay'); } if (count(preg_grep('/(class=\"gumroad-product-embed\")/', explode("\n", $post_content))) > 0) {