fsBuilds: Offloading WooCommerce Checkout and Subscriptions (Video) --
Transfer the complexity of payment, Subscriptions, and Subscription Management to
Task to be completed: You want to make use of WooCommerce and WordPress as an CMS, but would like to use an Merchant of Record to manage the payment process, subscriptions and subscription management.
This time we're highlighting a code by Topher DeRosia, showing how you can easily use the javascript library with webhooks that make subscriptions active when an order is placed, or deactivate subscription access when a payment fails while still making use of WooCommerce as your CMS.
Resources
Are you interested in trying it yourself? Here are all the resources used in the video below to guide you along the journey.
Add a Subscription to the Cart
PHP and Javascript is_purchasable() && ( ! is_user_logged_in() || 'no' === wcs_get_product_limitation( $product ) ) ) return; $user_id = get_current_user_id(); echo wp_kses_post( wc_get_stock_html( $product ) ); if ( $product->is_in_stock() ) : ?> var QueryString = function () // This function is anonymous, is executed immediately and // the return value is assigned to QueryString! var query_string = ; var query = window.location.search.substring(1); var vars = query.split("&"); for (var i=0;i<vars.length;i++) var pair = vars[i].split("="); // If first entry with this name if (typeof query_string[pair[0]] === "undefined") query_string[pair[0]] = decodeURIComponent(pair[1]); // If second entry with this name else if (typeof query_string[pair[0]] === "string") var arr = [ query_string[pair[0]],decodeURIComponent(pair[1]) ]; query_string[pair[0]] = arr; // If third or later entry with this name else query_string[pair[0]].push(decodeURIComponent(pair[1])); return query_string; (); jQuery( document ).ready(function() var s = ; if(QueryString.product) s = 'products' : [ 'path':QueryString.product, 'quantity':1 ] if(QueryString.email && QueryString.fname && QueryString.lname) s.paymentContact = ; s.paymentContact.email = QueryString.email; s.paymentContact.firstName = QueryString.fname; s.paymentContact.lastName = QueryString.lname; if(QueryString.coupon) s.coupon = QueryString.coupon; if (s) .builder.push(s); ); Subscribe Now With Expand
Subscription Creation through Webhook
PHP and Javascript Expand