studiopress / genesis-connect-woocommerce

Core plugin for developing WooCommerce integration
18 stars 14 forks source link

=== Plugin Name === Contributors: nathanrice, studiopress, studiograsshopper, modernnerd, marksabbath, calvinkoepke, curtismchale, wpengine, dreamwhisper Tags: genesis, genesiswp, studiopress, woocommerce Requires at least: 4.7 Tested up to: 6.6 Stable tag: 1.1.3

This plugin allows you to seamlessly integrate WooCommerce with the Genesis Framework and Genesis child themes.

== Description ==

This plugin replaces WooCommerce's built-in shop templates with its own Genesis-ready versions, specifically the single-product.php, archive-product.php and taxonomy.php templates needed to display the single product page, the main shop page, and Product Category and Product Tag archive pages.

To allow easy customization of these templates, and ensure that you do not lose your customizations when the plugin is updated, you can place your own copies of these templates in your child theme's 'woocommerce' folder and customize these copies as much as you like. You can also create your own taxonomy-{taxonomy}.php and taxonomy-{taxonomy}-{term}.php templates in the same location and this plugin will find them and use them to display your shop's Product Category and Product Tag archives. See the Template Hierarchy to learn more about naming requirements for taxonomy templates.

Additionally, the plugin makes Genesis Simple Sidebars and Genesis Simple Menus compatible with WooCommerce.

This version is compatible with WooCommerce 3.3+

== Installation ==

  1. Upload the entire genesis-connect-woocommerce folder to the /wp-content/plugins/ directory
  2. DO NOT change the name of the genesis-connect-woocommerce folder
  3. Activate the plugin through the 'Plugins' menu in WordPress
  4. That's it. Navigate to your shop pages and you should see the new templates in action.

Note: You must have a Genesis child theme activated before installing and activating this plugin.

== Frequently Asked Questions ==

= Can I customize the Genesis Connect for Woocommerce templates? =

It's not recommended to customize the plugin's templates because, if you do, you will lose any customizations the next time the plugin is updated. Instead, take copies of the plugin's single-product.php, archive-product.php and taxonomy.php files, and place these copies in a folder called woocommerce in the root of your child theme's main folder, like this: wp-content/themes/my-child-theme/woocommerce/

Make sure you keep the same file names!

Important While the templates provided with this plugin will be kept up to date with any future changes to WooCommerce, please bear in mind that, if you create your own custom Genesis Connect for WooCommerce templates, it is your responsibility to enure that any code you add to your custom templates is compatible with WooCommerce.

The plugin's templates provide a great starting point for your own customizations and can be found in the plugin's templates folder.

= I want to use WooCommerce's breadcrumbs, not Genesis breadcrumbs =

There's no need! Genesis Connect for WooCommerce modifies the default Genesis breadcrumbs to give the same crumb structure as WooCommerce's built-in breadcrumbs. The modified Genesis breadcrumbs will reflect all your existing Genesis breadcrumb customizations too.

= What if I want the main Shop page to be the site's front page? =

  1. Go to the Dashboard > Settings > Reading page select A Static Page and select "Shop" as the front page.
  2. It is recommended to turn off Genesis breadcrumbs for the Home page in Dashboard > Genesis > Theme Settings > Breadcrumb options.

= Does it work with Genesis Simple Sidebars? =

Yes.

= How does the plugin handle WooCommerce's CSS? =

Genesis Connect for WooCommerce does not modify WooCommerce's way of working with CSS. By default, WooCommerce provides its own woocommerce.css file containing basic styles for the shop pages which is located here: wp-content/plugins/woocommerce/assets/css/woocommerce.css.

To use this stylesheet, check the "Enable WooCommerce CSS styles" checkbox in the WooCommerce Settings page > General tab. Alternatively, you can add this code to your child theme's functions.php file: define( 'WOOCOMMERCE_USE_CSS', true );

Note that this code takes precedence over the checkbox in the WooCommerce Settings page > General tab; in other words, when you use this code, the checkbox is ignored.

If you decide to use the WooCommerce CSS and wish to customize its styles, do not edit the woocommerce.css file. Instead, make a copy of this file, rename it style.css and place it in your child theme's woocommerce folder, and make all your edits in this file. This ensures that you do not lose your CSS customizations when WooCommerce is updated.

Alternatively, you can add your WooCommerce styles to your child theme's main style.css stylesheet. In this case, you should disable the WooCommerce built-in stylesheet: either uncheck the "Enable WooCommerce CSS styles" checkbox in the WooCommerce Settings page > General tab, or a better option, add this code to your child theme's functions.php file: define( 'WOOCOMMERCE_USE_CSS', false );

If you are using a Genesis child theme specially designed for WooCommerce, refer to the theme's documentation to find out if all of the above has been been taken care of for you already.

= Where is the plugin's settings page? =

There isn't one! This plugin does not need one as all of its work is behind the scenes, integrating the display of WooCommerce within Genesis themes.

== Other Notes ==

= Technical Info =

For more technically minded users, this is what the plugin does:

= More about breadcrumbs =

By default, the Genesis breadcrumbs do not provide the same breadcrumb structure as those built-in to WooCommerce. Genesis Connect for WooCommerce modifies the normal Genesis Breadcrumbs output on shop pages to mimic the structure of those built-in to WooCommerce.

Note that the templates provided in this plugin automatically unhook WooCommerce's built-in breadcrumbs via this code in each template: remove_action( 'woocommerce_before_main_content', 'woocommerce_breadcrumb', 20 );

= Filters =

This plugin provides some filters which may be useful for developers.

genesiswooc_custom_query Located in gencwooc_single_product_loop() in templates/single-product.php. The filter callback function should return a query object or false.

gencwooc_product_archive_crumb Located in gencwooc_get_archive_crumb_filter() in lib/breadcrumb.php. Allows further modification of the single product page breadcrumbs.

gencwooc_single_product_crumb Located in gencwooc_get_single_crumb() in lib/breadcrumb.php. Allows further modification of the product archive (shop page) breadcrumbs.

= More info about WooCommerce CSS handling =

For the benefit of theme developers and customizers, here is a summary of possible scenarios for dealing with WooCommerce CSS:

== Changelog ==

= 1.1.3 =

= 1.1.2 =

= 1.1.1 =

= 1.1.0 =

= 1.0 =

= 0.9.10 =

= 0.9.9 =

= 0.9.8 =

= 0.9.7 =

= 0.9.6 =

= 0.9.5 =

= 0.9.4 =

= 0.9.3 =

= 0.9.2 =

= 0.9.1 =

= 0.9.0 =