Releases: bigcommerce/bigcommerce-for-wordpress
3.2.0
Added
- Display variant images in the product gallery. Once a specific variant
is selected, its image will be used as the primary gallery image. - Added stack traces to the error log when exceptions are thrown during
the import process - Added a screen at the end of the onboarding process to guide merchants
to their next steps. - Added support for pre-order and non-purchaseable product availability
settings. Includes two new theme customizer fields to control the text
for the "Add to Cart"/"Buy Now" buttons when displaying pre-order products. - Added support for products with hidden prices. They will use the new
templatecomponents/products/product-hidden-price.php
to not show the price. - Added a new option for the Product Components block/shortcode for Add To Cart.
This will output the Add to Cart/Buy Now button and form on any page, including
variants if applicable. Example Usage:[bc-component id="431" type="add_to_cart"]
- Added a new Channel Select field in the product picker UI in the WP Admin. You can
now search for products from any channel you've connected to your WP Store. Selecting
a channel will initiate a new query immediately and subsequently only produce product
search results from that channel.
Fixed
- Fixed import of product descriptions containing HTML links. WordPress
core was addingnoopener
attributes prematurely, breaking the JSON
data stored in the queue. - Fixed a fatal error when updating to version 3.0+ from 2.2.1 or earlier
while a product import is in progress.
Changed
- Pass through custom error messages from the API when Add to Cart fails.
Previously we were returningnull
and using a generic message. We're still
using the generic message but only when a more specific message is not
available from the API. - The template
components/products/product-gallery.php
has changed to
accommodate variant images. - The template
components/products/product-form.php
has a new variable
$message
containing the pre-order message to display for the product. - The
bigcommerce/customer/group_id
filter will be called from
\BigCommerce\Accounts\Customer::get_group_id()
, even when the current
user is logged out or does not have a customer ID.
3.1.0
Added
- Added a button to reset channel listing overrides, enabling editors to
reconnect a product to the base product for future updates. - Added a button to immediately re-sync a product. Editors can import the
latest changes from the BigCommerce API for that product without running
a full import on the entire catalog. - Added a missing entry to the 3.0.0 changelog regarding fixing the uninstaller.
- Added a method to fetch customer group info.
$customer->get_group()->get_info()
- Created an option to toggle synchronization of analytics settings.
- Added a customizer option to disable Quick View on product cards. When disabled,
product card images are wrapped in a link to the product single. - Added a template for the sku component of a product,
components/products/product-sku.php
. - Added a new shortcode/block that allows selection of distinct product
components. Example usage:[bc-component type="description" id="117"]
.
Valid types are: sku, description, image, title. - Added an option to disable sync of analytics IDs.
Fixed
- Fixed missing markup for AMP templates. Some valid tags had been
erroneously stripped out.
Changed
- Added a new parameter to the product title template (
components/products/product-title.php
)
to set the header level. It should set the header appropriately
for the context in which the component is loaded (h1 for the product
single, h2 for the shortcode/block single, and h3 for the product card). - Moved the Quick View markup from
components/products/product-card.php
to
a new template,components/products/quick-view-image.php
. - Removed the wrapper div from the template
components/products/product-quick-view.php
.
The wrapper will be added by the template controller. - Changed the
assign_terms
capability for categories and brands todo_not_allow
.
Assignments would be overwritten by the next import. This keeps it from
happening in the first place to avoid confusion. - Turned off the
autocomplete
attribute on API fields in the settings
page. This will help to avoid an issue where autocomplete causes a change to
user credentials and causes the store to disconnect when settings are saved. - Updated the product quick view template,
components/products/product-quick-view.php
,
uses the new product sku component. - Updated the product shortcode single template,
components/products/product-shortcode-single.php
,
uses the new product sku component. - Updated the product single template,
components/products/product-single.php
,
uses the new product sku component. - Updated the onboarding flow to indicate where the user is in the setup process. Additionally,
some styles were updated on the content areas, buttons, and start-over feature. - Optimized the import process to avoid fetching data for products not listed
in any active channels.
Deprecated
- Deprecated the
$quickview
and$attributes
variables in the template
components/products/product-card.php
. The variables are now empty, and
will be removed in a future version.
3.0.1
Fixed
- Fixed duplicate posts created in WordPress when importing products
in draft or pending status.
3.0.0
Added
- Added support for connecting to multiple BigCommerce channels. Since the
plugin can't know the particular use case a store has for using multiple
channels, we provide the base framework for site developers to extend
in a way that makes sense for their business. Multi-channel support
requires opt-in using a filter:This will enable an admin to connect to multiple channels on the settingsadd_filter( 'bigcommerce/channels/enable-multi-channel', '__return_true' );
screen. The primary channel will still be used for all front-end requests
unless filtered to use a different channel. Example:add_filter( 'bigcommerce/channel/current', function( $channel ) { // do some logic here to determine what channel to use return get_term( 697, \BigCommerce\Taxonomies\Channel\Channel::NAME ); });
- Created a taxonomy for storing channels. Most stores will only have one,
but a store with multi-channel enabled may have many. The taxonomy's UI
is hidden, and it is only exposed during onboarding (when selecting the
initial channel) and in the Channel Settings section when multi-channel
is enabled. All products are associated with a channel term on import.
Changed
- Updated the position and design of the start-over button and confirmation
message for the on-boarding process. - Fixed display of tax and total price in order history when an order was
paid for entirely with store credit. It should no longer show a negative
subtotal, and the grand total should properly display as $0.00 (formatted
appropriately for the local currency). - Currency can now be filtered at any point in the request. Previously,
the currency would be locked in place when creating the formatter
in the Currency service provider. The service provider will now use
a factory method to return a formatter based on the current, possibly
filtered, value of the\BigCommerce\Settings\Sections\Currency::CURRENCY_CODE
option. Use thepre_option_bigcommerce_currency_code
filter to adjust
the currency in use at any given point in the request. - The import process has changed to more efficiently support imports when
connected to multiple channels. After fetching listings for each channel,
products will be fetched from the Catalog API once. When fetching products
in bulk, we now also fetch options and modifiers, taking advantage of
new capabilities of the API. This limits the bulk import to 10 products
per request, but saves two additional queries per product later in the import.
The tasks to fetch listings and initialize channels now have a suffix
of the channel ID on the string used to trigger the task status. - The import queue is now stored as hidden posts in the
wp_posts
table,
using the post typebigcommerce_task
. - Method signature for the
\BigCommerce\Import\Importers\Products\Product_Builder
constructor has changed. It now expects a \WP_Term representing the channel
the product belongs to. - Method signature for the
\BigCommerce\Import\Importers\Products\Product_Importer
constructor has changed. It now expects a \WP_Term representing the channel
the product belongs to instead of a channel ID and an instance of the Channels API. - Method signature for the
\BigCommerce\Import\Importers\Products\Product_Saver
constructor has changed. It now expects a \WP_Term representing the channel
the product belongs to. - The order of operations in
\BigCommerce\Import\Importers\Products\Product_Saver
has changed to assign terms to a product before setting its post data
or post meta. This is to support multiple products with the same slug
but in different channels. - Method signature for the
\BigCommerce\Import\Importers\Products\Product_Strategy_Factory
constructor has changed. It now expects a \WP_Term representing the channel
the product belongs to. - Product price ranges are now calculated on import and stored in post meta
rather than relying on values from the bc_variants table on render. - Moved
\BigCommerce\Import\Review_Builder
to
\BigCommerce\Import\Importers\Reviews\Review_Builder
. - Moved
\BigCommerce\Import\Review_Fetcher
to
\BigCommerce\Import\Importers\Reviews\Review_Fetcher
. - Method signature for the
\BigCommerce\Import\Processors\Channel_Initializer
constructor has changed. It now expects a \WP_Term representing the channel
to initialize. - Renamed
\BigCommerce\Import\Processors\Listing_ID_Fetcher
to
\BigCommerce\Import\Processors\Listing_Fetcher
and changed its constructor
signature to require a \WP_Term representing the channel for the listings. - Renamed
\BigCommerce\Import\Processors\Product_ID_Fetcher
to
\BigCommerce\Import\Processors\Product_Data_Fetcher
. - Changed the method signature for the
\BigCommerce\Import\Processors\Queue_Runner
constructor. It no longer requires an instance of the Channels API. - Moved
\BigCommerce\Merchant\Routes
to\BigCommerce\Taxonomies\Channels\Routes
Fixed
- Updated registration of block editor plugins to work with recent
versions of Gutenberg.
Removed
- Removed the
bc_products
table. All queries that used this table have been
updated to use post meta. - Removed the
bc_variants
table. All queries that used this table have been
updated to use post meta. - Removed the
bc_import_queue
table. All import tasks have been moved to
thewp_posts
table. - Removed the
bigcommerce/pricing/channel_id
filter. The pricing API request
will now derive the value from the current channel. - Removed the
bigcommerce/pricing/currency_code
filter. The pricing API
request will now derive the value from thebigcommerce_currency_code
option.
Deprecated
- The
post_id
field in thebc_reviews
table is no longer used and
will be removed in a future release.
2.2.1
Changed
- Updated the way cached pricing works while requesting new data from the
Pricing API. We're now displaying the cached pricing first. We've also
removed the spinner while loading pricing data and replaced with a simple
fade in/out of prices.
2.2.0
Added
- Added a redirect to the Welcome/Settings screen on plugin activation
Changed
- Updated the BigCommerce Checkout SDK to version 1.18.10
Fixed
- Fixed a layout issue on the WP Admin BigCommerce Resources page where
resource cards were misaligned. - Fixed AMP validation errors from improperly included scripts. Thanks, @westonruter!
2.1.0
[Note: Have released a few times as we're testing GitHub actions]
Changelog
[2.1.0]
Added
- Uses the new BigCommerce pricing API to retrieve more accurate pricing
data based on selected product variants, options, and customer groups.
The original price display feature still exists and is now the fallback
if unable to fetch live pricing. - Added a setting to determine whether prices should display with tax
included or excluded. This duplicates a setting from the BigCommerce
admin that is not available via the Store API. - Added the
customer_group_id
property to the customer profile object
retrieved from the Customer API. - Added a routine to make BigCommerce nav menu meta boxes visible to users
by default. - Added webhooks to listen for product inventory updates. A received webhook
will schedule an immediate cron job to pull updated product data from
the Catalog API.
Changed
- Upgraded Checkout SDK to version 1.18.5
- Reduced the prominence of the checkout requirements notification when on
admin pages unrelated to the BigCommerce plugin. - Updated the template
components/products/product-price.php
with markup
to support Pricing API ajax requests.
2.0.1
Fixed
- Handled the new firing order of block-editor related hooks in transitioning
from the Gutenberg plugin to WordPress 5.0+. This fixes a PHP warning
and some odd behavior from other plugins that register meta areas
for the block editor.
2.0.0
Added
- Added new links and buttons to the Products custom post type edit screen
and the BigCommerce Settings page for managing your products on BigCommerce
and logging in to your account - Added a Resources page to the BigCommerce admin section. The Resources page
contains tab separated content that provides users with a repository of
themes, plugins, apps, and support links to enhance or extend their
BigCommerce for WordPress installation. - Added an option to create a new menu in addition to selecting a preexisting
menu on the Menu Select screen during on-boarding. - Added an option to configure channel settings for new products during
on-boarding. The channel selection screen is always shown now, even
for new accounts that don't yet have a channel. - Added an option to the on-boarding process to choose between a
full-featured store and one directed more towards bloggers. This
sets default settings depending on your choice. - Added a filter for customer profile fields fetched from the API:
bigcommerce/customer/empty_profile
- Added a filter to wrap the output of a template. Can be used to prepend
or append content to the template:
bigcommerce/template={$template}/output
- Added a template for the checkout button on the cart
Changed
-
Updated the error handling and response messages related to the product
sync feature. We now provide more information to the user based on the
type of error that has occurred. -
Added the product SKU to post meta, so that catalog searches can use
WordPress meta queries. -
If the option to automatically add products to the channel is disabled,
it will be honored even on the initial import when the channel has no
products. -
Removed product pick list options for products that are out of stock.
-
Changed how option and modifier fields are rendered and treated on
the product single and Quick View modals. Modifiers using select/radio
fields are now supported, using the same templates as the option fields.NOTE: Please take note of the changes to the option field templates and
adjust your custom templates as needed.components/modifier-types/modifier-checkbox.php
→components/option-types/option-checkbox.php
components/modifier-types/modifier-date.php
→components/option-types/option-date.php
components/modifier-types/modifier-number.php
→components/option-types/option-number.php
components/modifier-types/modifier-text.php
→components/option-types/option-text.php
-
The template
components/cart/cart-actions.php
now takes an array of
rendered$actions
that will be echoed into the template. -
The template
components/products/product-card.php
requires a new
attribute on the Quick View template wrapper:data-quick-view-script=""
Fixed
- Fixed a typo on the Create New Account screen during on-boarding
- Fixed an issue with Quick View modal boxes in product cards where removing
the quick-view feature would break the JS and the page. - The nonce for an ajax import request is validated before triggering the
import cron action. - Fixed an extra quote rendered in template wrappers.
- Fixed Flatpickr library issue with quick-view modal. NOTE: This changes the position
of the date picker to inline with the date field. Update your CSS as needed.
Deprecated
- The
modifiers
parameter to the cart REST controller is no longer used
and will be removed in a future version. - The
modifiers
variable in the templatecomponents/products/product-form.php
is no longer used and will be removed in a future version. - The template
components/products/product-modifiers.php
is no longer used.
1.6.0
Added
- Added a Menu Setup screen to the onboarding flow, giving merchants an
opportunity to quickly add BigCommerce menu items to their navigation menu. - A "Start Over" button is available in the onboarding screens, enabling
the merchant to go back to the beginning of the account connection process. - All option caches are flushed before and after running an import batch
to avoid cache corruption from longer-running processes. - The import log records more extensive debugging information. Use the
bigcommerce/logger/level
filter to change the logging level. - Added hooks to render HTML inside the form tags on the plugin settings pages.
- Added child categories to the filter options in the product block/shortcode UI.
Changed
- The import debug log moved from
uploads/logs/bigcommerce/import.log
to
uploads/logs/bigcommerce/debug.log
.
Fixed
- Cleaned up a small memory leak in the product block/shortcode UI pagination.
- Fixed the check for an expired import lock when running an import via ajax.
- Fixed arguments to Channel Listings API requests to ensure that all products
are returned even with larger batch sizes. - Fixed a fatal error when intializing an import on PHP 7.0+.