January Updates

What a brilliant start to 2018! This month brings the largest slew of platform updates to date bringing some incredible new features and enhancements to That Website Guy and paving the way for the future of the entire project.

This post is going to be quite long so here’s a quick TL;DR overview of the main updates:

  • Apple Pay support with the Stripe Payment Gateway app
  • 5 new templates for the page builder
  • Brand new ecommerce shipping options
  • Full documentation for all Basic and Pro apps
  • New tabbed “My Account” area
  • Totally revamped Performance app
  • Better Google Analytics support with the Google Analytics Integration app
  • Totally revamped Print Invoices & Packing Lists app
  • New label options for the Product Labels app
  • New Comment Reply Email Notification app
  • A ton of performance enhancements, bug fixes, and tweaks

Core Updates

I started the year exactly the same as I did last year – going over each site and checking the copyright text in the footers manually updating the ones that still showed “© 2017”. Considering there’s a LOT more sites this time around this took quite a bit longer than I’d hoped, and it got me thinking there must be a better way – so of course now there is. I’ve added a new shortcode specifically for this purpose. Now all you need to do is type [year] and it will be automatically replaced with the current year (2018), and I’ve added this in to every site’s footer copyright text already. I’ve also added another shortcode for [site-title] which will display the site’s title, and this came in handy when working on the new site signup process.

The majority of the rest of the month consisted of making some final finishing touches to the huge wave of updates on my development server, planning the best way to deploy them to the live platform, and writing documentation. You’ll now find full & updated documentation for each of the Basic & Pro apps over on the knowledge base, and each app on the apps page features a link taking you directly to that app’s documentation page so you can learn how to use each app without having to guess or reach out to me and ask. Work on the knowledge base will continue over the course of the year with the aim of having a full catalog of documentation for the entire platform by the year’s end (my new year’s resolution).

Page Builder

The page builder now features 5 new templates! Say hello to Zen LifeJanelle AwkwardLet’s MeatAbout Us, & Contact.

The Posts module’s featured image placement has been reworked, the Post Grid module has a new “Load More” button, and the Subscribe module has a new Google ReCAPTCHA theme. The Post Carousel, Post Slider, and Content Slider modules all have new options for “Nav Arrow Style”.

The Google Fonts offerings throughout the page builder have been updated.

A new safemode option has also been implemented – simply add “&safemode” to the URL when the page builder is active and all modules will be rendered without content.

There has also been tons of other bug fixes, performance enhancements, and tweaks.

Dashboard

“Templates” no longer appear on the Admin dashboard “At a Glance” metabox. The “Shop Stats” metabox now features net sales.

The platform core received an important security patch earlier in the month.

Login Widget

The login widget has been totally rewritten to be much leaner and more reliable. Now if you attempt to log in using the widget from your site’s homepage (and your site has a “My Account” page), the user will be redirected to the My Account page upon signing in. Logins from any other page will simply keep you on the page you were on.

Labels have also been added to the login form to replace the placeholders for accessibility.

Ecommerce:

The ecommerce system on the platform received a huge series of updates.

The shipping options have been completely overhauled to introduce a new “Shipping Zones” functionality with re-usable instance-based shipping methods – and I’ve already been over each site to migrate old shipping rates over to the new setup. Also if there are no shipping methods set up, the customer won’t be prompted for shipping during checkout. A new variable has been added so the shipping calculator is shown on the first row only when showing multiple shipping packages.

Cart operations (item quantities/remove, coupon apply/remove, shipping options) now use ajax instead of refreshing the page. Context has been added to checkout error messages. Credit card icons have been replaced with SVG. Credit card fields have been updated for a better mobile experience. Toggle-able terms will be displayed inline on the checkout rather than showing a link. On the “Pay for order” page, if logged out a login form will be shown rather than an error message. US, France, and Poland postcode validation has been added, and zone postcodes are no longer “normalised” so that wildcard matching can be performed on postcodes with spaces (eg. NR30 *). The billing email field location has been moved to work with password managers. The street address field label and placeholders have been changed to minimise error on checkout.

The “My Account” area has been revamped and now features a tabbed layout. To allow page tabs to be disabled you can set the endpoint value to a blank string. There’s also a new button on customer profiles to allow copying the billing address to shipping address. The downloads list layout has been improved. The “Lost Password” flow has been improved.

The admin panel’s “Orders” menu now displays the number of processing orders. Payment dates are now shown on the orders screen, and the items column has been removed due to loading excessive data. Order notes are now colour-coded (Manual notes/System notes/Customer notes). Failed orders can now be edited, and the non-functional order total input box has been removed and recalculation buttons have been combined into one working button.

The coupon usage link on the coupons admin screen has been removed. “Percent” and “Percent product” coupon discount types have been merged as they provide the same discount.

For the add/edit product page, the SKU field has been moved to the “Inventory” tab, and has also been added for Grouped products and External products. There’s now a brand new Product importer tool, and you’ll find a button to import products via CSV on the view products page in the admin panel. The Variable product sync has been optimised. Grouped products are now linked from the parent rather than the children, meaning children can now be in more than one group. A bulk variation update has been added for stock status.

Product archives now have a new layered nav type: Filter by rating, and layered navs have been refactored to improve performance. The stock display has been revised to hide the “In stock” message if stock management is off, and only show available on backorder message if notifying the customer. Variable products no longer show striked out prices in combination with ranges for more clarity when on sale, and the variable product price used in sorting will now be adapted based on the direction of sort. When searching, sort order is now disabled so that results are sorted by relevance.

There’s a new gallery on single product pages which features better mobile support using PhotoSwipe and Zoom, and the gallery uses data-captions for captions to support both captions and titles for better SEO. Prices no longer display as “Free” instead of “0” to fix issues with ranges and for consistency. Product attributes will now include archive links in the “Additional Information” tab on product pages, and the “Additional Information” tab can now be linked to directly with a URL hash.

The “Recently Viewed Products” widget now sorts products by the view order, and the mini-cart has HTML has been updated to use a list.

The Tax suffix is now hidden on non-taxable products, and tax rates are now automatically sorted rather than allowing for clunky manual sorting.

There’s new “On-hold” order emails, and customer account emails will now include a “My Account” page link. Admin emails now also include a reply-to address.

110 new currencies have been added (including bitcoin), and a new setting has been added to sell to “all countries, except for…” rather than just “specific countries” or “all countries”. The Store Notice has been made dismissible on the front-end, and Geo IP API services have been updated. A new Image URL setting has been added to PayPal Standard.

Tons more bug fixes, performance enhancements, and tweaks have been made, far too many to mention.

App Updates

Due to the scale of the updates and lack of use the following apps have been retired: Points & Rewards, ShipStation Integration, and Product Gallery Slider. Fear not though – nobody was using them, and the features of the Product Gallery Slider app have been integrated into the core platform. The Advanced Shipping Options app has also been withdrawn from the apps list for the time being while remaining active on sites that were using it, and will likely make a full re-appearance in the near future.

Thanks to the addition of Apple Pay, the Stripe Payment Gateway app has now been moved to the Ultimate plan.

Owners of our Basic plan will be glad to know the 2Checkout Gateway Integration app has joined the ranks (from the Pro plan apps).

New App: Comment Reply Email Notification

There’s a new app in town – the Comment Reply Email Notification app. This much-requested feature allows commenters to subscribe to their comments and be notified via email of replies. You’ll find the new app on the basic plan available for all sites.

Custom CSS

The Custom CSS app now shows an address bar on the preview window. A new CSS code helper tool has also been added to the editor to help spot errors, and several bug fixes, performance enhancements, and tweaks have also been made.

Stripe Payment Gateway

The Stripe Payment Gateway app has been moved to the Ultimate plan and now has support for Apple Pay and the Google Payment Request API. Saved card handling has been improved, and inline validation of keys has also been added as well as better support for the Dynamic Pricing app. Several bug fixes, performance enhancements, and tweaks have also been made.

Google Analytics Integration

The Google Analytics Integration app has been totally re-written and now features a brand new 1-click integration process with API access to Google Analytics, which allows for better analytics data for your websites with Event Names and a Checkout Funnel, and existing sites will be migrated to this new system throughout February.

A new option has been added to enable tracking of administrator and shop manager roles, and there are also new options to track user IDs and product impressions.

Name Your Price

The Name Your Price app has been updated to better support the Subscription Payments app, and now also features support for order again, and payment for pending orders. Several bug fixes and tweaks have also been made.

Shipment Tracking

DHL US and An Post have been added to the providers list. There’s also a new “Shipment Tracking” column in the admin orders list. The Shipment Tracking app now features better support for the Print Invoices & Delivery Notes app, as well as several bug fixes, performance enhancements, and tweaks.

Product Tab Manager

Global tabs restricted to a category are now hidden from the product edit screen if unavailable for the product. Support for linking to custom tabs directly via an anchor link has also been added, as well as several bug fixes, performance enhancements, and tweaks.

Facebook Messenger

The Facebook Messenger app now has new mobile display options, and will now close when you tap in a space on mobile. Several bug fixes, performance enhancements, and tweaks have also been made.

Product Enquiry Form

As well as a few bug fixes and tweaks, emails sent from the enquiry form will set a “Reply-to” address instead of “From”.

Solve Media Captcha Integration

Fixed the positioning of comment form captcha to display above the “Submit Comment” button, as well as a few other small bug fixes and tweaks.

Checkout Addons

As well as better support for the Print Invoices & Delivery Notes app, the Checkout Addons app received several bug fixes, performance enhancements, and tweaks.

Product Waitlist

Product ID has been added to the email template, and the product tab table has been adjusted & restyled with “Date added” post-meta added for when users are added to the waitlist. Functionality has been added for variable and grouped products to reliably store a count for child waitlists. Front-end classes have been refactored, as well as code for handling logged-out users.

Support for multiple parent products (grouped products) has been added. Auto-updates of waitlist counts has been removed to avoid issues with large product databases, and a new setting has been added to update waitlist counts manually.

As well as better support for the Subscription Payments app, several other bug fixes, performance enhancements, and tweaks have been made.

Customer Wishlists

“Registration Required” has been added to the “Allow Guests to create lists” option. This will allow guests to see and use the “Add to Wishlist” button, but if “Registration Required” is selected they will be redirected to the Login/Register form before they can actually add the item to a list.

rel="nofollow" has been added to all wishlist links.

The Customer Wishlists app now also has better styling for the admin interface when reviewing a list, as well as better support for the Catalog Visibility Options app, and several more bug fixes, performance enhancements, and tweaks.

Shopping Cart Reports

Cart storage has been refactored to improve efficiency and reduce storage footprint. There’s also better support for the Subscription Payments app, as well as several bug fixes, performance enhancements, and tweaks.

Dynamic Pricing

When an item is discounted with Dynamic Pricing and a coupon is set to exclude sale price items, coupon use is now disallowed. Percentage discounts are now calculated using the exact amount you enter. Previously you could enter “50” or “.5” in the amount box and the result would be a 50% discount.. Now if you enter “.5” you will actually be getting a half a percent discount.

Product rules are now cache-loaded for performance improvements, and there’s also better support for the Memberships and Subscription Payments apps, as well as several other bug fixes, performance enhancements, and tweaks.

Checkout Field Editor

Custom fields are now added to the admin order screen. The Checkout Field Editor app also features better support for the Print Invoices & Delivery Notes app, as well as several bug fixes, performance enhancements, and tweaks.

Force Sells

As well as bug fixes and tweaks, there’s a new filter to allow the main product to be added even when the forced item is out of stock.

Print Invoices & Delivery Notes

The Print Invoices & Delivery Notes app has been completely rewritten to improve stability, flexibility, and performance. The app settings have been moved to a new tab under the Store Settings page, and settings have been added to enable the display of terms & conditions (or return policy) and footer information on packing lists. A new option has been added to hide virtual items from packing lists, and there’s also a new setting to optionally set the invoice number minimum number of digits to add leading zeros to the invoice number count.

You can now use the customiser to tweak the appearance and content of templates, and many new options have been added to help customise invoices and packing lists. You can now upload a larger logo but limit its width in the template to improve image quality on retina displays and deliver a finer print quality on paper. Printed PDFs also no longer include clickable “View order” links.

Emails will now be triggered for orders manually set to complete, and invoice number will now be included in the invoice email subject. Packing lists can now also be emailed to multiple recipients defined by an admin or shop manager.

There’s a new bulk action to output a shop manager “Pick List” with items necessary to process many orders at once.

As well as several more bug fixes, performance enhancements, and tweaks, the Print Invoices & Delivery Notes app now also features better support for the Subscription Payments app.

Social Login

The Social Login app has a new authentication library. Widgets will now show buttons to link an account if a user is already logged in, and login button styling has been updated to reflect newer guidelines. There’s also better support for the One Page Checkout app, as well as several more bug fixes, performance enhancements, and tweaks.

One Page Checkout

The One Page Checkout app now has better support for the Name Your PriceStripe Checkout Gateway, and Subscription Payments apps, as well as several small bug fixes, performance enhancements, and tweaks.

Subscription Payments

Support for bulk-editing subscription variation prices using relative increase or decrease from existing price (either fixed amount or percent) has been added. The layout & responsiveness of the subscription pricing fields on the Edit Product screen has been improved.

Additional order type filters have been added to the admin “Orders” screen to show only subscription parent, renewal, resubscribe, or switch orders. Admins will now be warned when trashing subscription parent orders from row actions that the related subscriptions will also be trashed. Manually added subscriptions now require a customer to be added to avoid issues with subscriptions created without a customer.

Switches (upgrades & downgrades) are now processed on order status change instead of when the customer completes checkout. The next payment date threshold for end date has been increased to safeguard against payments being processed on the last day of a subscription.

PayPal Reference Transaction support will now only be checked once per week instead of daily. A link to PayPal’s subscription page will now also be displayed in the Subscription Billing Information section of the Edit Subscription admin screen.

The display of the front end “My Account > View Subscriptions” page has been improved for small screens. Recurring fees are now shown in the recurring totals section on Cart & Checkout pages. Customers can now resubscribe to subscriptions pending cancellation, and Renewal order totals and data will now always be used for renewal payments, now making it possible to more easily add one-time fees or discounts to renewals.

The description for the “Disable Automatic Payments” option has been reworded to make it clear it does not change existing subscriptions.

There’s now new subscription reports to get insights into the performance of your subscription business, and there’s also a new failed recurring payment retry system to help recover revenue that would otherwise be lost. More subscription emails have been added to help you keep on top of important events, like customer suspension and expiration, and a cancellation date has been added to keep track of when customers cancel subscriptions, not just when they end after being cancelled.

As well as better support for the Name Your Price, and Checkout Addons apps, there’s also tons more bug fixes, performance enhancements, and tweaks.

Memberships

A Members Area link is now included on the “Order Received” page and order emails if membership is active. The user experience has been improved if restricted content redirection is enabled and the page to redirect to is the “My Account” page.

You can now search user memberships by user ID in the user memberships admin screen. You can now also bulk-delete memberships via the Memberships edit screen bulk actions. You can now change, update, or remove a user membership’s associated subscription in the membership details panel. You can now use subscriptions to also offer instalment payments to get access to membership plans of a different duration decoupled from the subscription length.

New emails for membership ending soon, membership ended, and membership renewal reminder can be sent to plan members to remind them about their membership expiration events, and if a user membership is tied to a subscription, “Ending Soon” emails will no longer be sent if enabled.

If a user is a member of multiple plans that discount the same product, a filter will now be used to optionally avoid stacking discount, and rather apply the lowest price among the ones resulting by overlapping discount rules.

There’s new settings to optionally exclude member discounts to be applied to products on sale, or specific products.

Membership plans can now have fixed start and end dates, which set memberships to start and expire on a precise day, regardless of the date when purchase was made or membership was assigned, and if a membership start date is set in the future, the membership active status will be delayed until that date without access. When manually creating a user membership, dates will be initially calculated by default to the plan predefined start and end dates.

Member discounts have been refactored to greatly improve discounts handling. You can now allow free memberships where access to a membership plan is granted upon user registration.

The user membership status will now be displayed when listing the membership plan a user is part of in the admin user profile edit screen.

Admins will now be warned about conflicting rules if they restrict access to products that could grant access to the same plan.

As well as better support for the Dynamic Pricing app, there have also been tons of bug fixes, performance enhancements, and tweaks.

Product Labels

Product Labels (originally Product Badges & Labels) now has 4 new label types, and a new option to show product labels on product detail pages.

The conditions settings have been refactored and optimised to better handle single product (now allows searching, and larger amounts of products), and stock status with variable products (now uses the highest stock level of variations), and the entire conditions flow has been optimised to create a much smoother user experience. You can now duplicate condition groups, and delete entire condition groups. You can now instantly add conditions & condition groups instead of waiting for the process to complete. Only valid operator options will show, and condition descriptions will now also show instantly.

There’s now support for “Guest User” in the “User Role” condition, and also zipcode range support (eg. “Zipcode” = “Equal to” = “10000-20000,30000-40000”).

Several more bug fixes, performance enhancements, and tweaks have also been made.

Performance

The entire options panel has been overhauled to make it cleaner and simpler.

Feeds are no longer cached by default. MP4, WEBP, & WEBM file formats are now excluded from gzip compression.

Minification and Concatenation are now separate options. Minification libraries have been updated to the latest stable version.

There’s a new option to load CSS files asynchronously and add the critical CSS to the header of the page. New option to defer loading of JS files, new option to disable embeds, new options to optimise your site’s database tables and schedule automatic optimisation, new option to preload your website cache using an XML sitemap, new option to deactivate the manual and automatic preload bot from the settings. There’s also a new option to use a common cache folder for all logged-in users.

You can now exclude a page from being cached from the “Cache Options” metabox on the page’s edit screen.

Cache busting has been drastically improved. Product cache is now automatically cleared when updating variations, and the cache & minified files will also be cleared when a page layout is updated with the page builder. Shop geolocation query string will now be automatically cached when the geolocation option is selected in the store settings. CSS & JS content loaded using a php file are now saved as static files instead to improve loading time.

CDN URL is now applied to internal images links, CSS background images in HTML content, custom files like videos or documents, and images using a relative path.

The CloudFlare API has been updated to v4 and the app is fully compatible. CloudFlare IPs will be saved in a transient and zone ID in the options to reduce the number of API calls. A text field is now used instead of a dropdown list for the CloudFlare domain value, which will be pre-filled with the domain of the current website. CloudFlare connection Success/Error messages will now be displayed when you modify the options. The CloudFlare “dev mode” will automatically switch off after 3 hours to reflect CloudFlare behaviour. The automatic optimal settings option will now set CloudFlare’s browser cache TTL to 1 month. And a new option has been added to the admin bar “Performance” menu to Purge CloudFlare cache.

There’s also tons more bug fixes, performance enhancements, and tweaks.

SEO Meta Tags

As well as a few small tweaks, the SEO Meta Tags metabox no longer appears on the edit template screen.

Social Sharing

The Social Sharing metabox now longer appears on the edit template screen.

Miscellaneous

The Page RestrictViglink IntegrationProduct AddonsCatalog Visibility OptionsPopupsProducts Per Page, apps all received a handful of small bug fixes, performance enhancements, and tweaks.

Summary

This huge wave of updates is now live, and so far everything seems to be better than ever. If anybody notices anything amiss or if you have any questions or comments just get in touch via the usual channels (Twitter/FB/Support Ticket/Contact). If you’d like to support the platform please take a look at our affiliate program and you can earn money for your referrals.

More big things planned for February, those who have been following on Twitter will likely have an idea what they are 😏