Shop styles updates
authorLaury GvR <laury@gaslightmedia.com>
Wed, 11 Feb 2015 20:15:15 +0000 (15:15 -0500)
committerLaury GvR <laury@gaslightmedia.com>
Wed, 11 Feb 2015 20:15:15 +0000 (15:15 -0500)
111 files changed:
front-page.php
functions.php
header.php
index.php
nggallery/album-glmalbums.php [new file with mode: 0644]
nggallery/gallery-glmphotos-narrow.php [new file with mode: 0644]
nggallery/gallery-glmphotos.php [new file with mode: 0644]
nggallery/gallery-glmvideos.php [new file with mode: 0644]
page.php
scss/_settings.scss
scss/_structure.scss
sidebar.php [new file with mode: 0644]
woocommerce.php [new file with mode: 0644]
woocommerce/archive-product.php [new file with mode: 0644]
woocommerce/cart/cart-empty.php [new file with mode: 0644]
woocommerce/cart/cart-item-data.php [new file with mode: 0644]
woocommerce/cart/cart-shipping.php [new file with mode: 0644]
woocommerce/cart/cart-totals.php [new file with mode: 0644]
woocommerce/cart/cart.php [new file with mode: 0644]
woocommerce/cart/cross-sells.php [new file with mode: 0644]
woocommerce/cart/mini-cart.php [new file with mode: 0644]
woocommerce/cart/shipping-calculator.php [new file with mode: 0644]
woocommerce/checkout/cart-errors.php [new file with mode: 0644]
woocommerce/checkout/form-billing.php [new file with mode: 0644]
woocommerce/checkout/form-checkout.php [new file with mode: 0644]
woocommerce/checkout/form-coupon.php [new file with mode: 0644]
woocommerce/checkout/form-login.php [new file with mode: 0644]
woocommerce/checkout/form-pay.php [new file with mode: 0644]
woocommerce/checkout/form-shipping.php [new file with mode: 0644]
woocommerce/checkout/review-order.php [new file with mode: 0644]
woocommerce/checkout/thankyou.php [new file with mode: 0644]
woocommerce/content-product.php [new file with mode: 0644]
woocommerce/content-product_cat.php [new file with mode: 0644]
woocommerce/content-single-product.php [new file with mode: 0644]
woocommerce/content-widget-product.php [new file with mode: 0644]
woocommerce/emails/admin-new-order.php [new file with mode: 0644]
woocommerce/emails/customer-completed-order.php [new file with mode: 0644]
woocommerce/emails/customer-invoice.php [new file with mode: 0644]
woocommerce/emails/customer-new-account.php [new file with mode: 0644]
woocommerce/emails/customer-note.php [new file with mode: 0644]
woocommerce/emails/customer-processing-order.php [new file with mode: 0644]
woocommerce/emails/customer-reset-password.php [new file with mode: 0644]
woocommerce/emails/email-addresses.php [new file with mode: 0644]
woocommerce/emails/email-footer.php [new file with mode: 0644]
woocommerce/emails/email-header.php [new file with mode: 0644]
woocommerce/emails/email-order-items.php [new file with mode: 0644]
woocommerce/emails/plain/admin-new-order.php [new file with mode: 0644]
woocommerce/emails/plain/customer-completed-order.php [new file with mode: 0644]
woocommerce/emails/plain/customer-invoice.php [new file with mode: 0644]
woocommerce/emails/plain/customer-new-account.php [new file with mode: 0644]
woocommerce/emails/plain/customer-note.php [new file with mode: 0644]
woocommerce/emails/plain/customer-processing-order.php [new file with mode: 0644]
woocommerce/emails/plain/customer-reset-password.php [new file with mode: 0644]
woocommerce/emails/plain/email-addresses.php [new file with mode: 0644]
woocommerce/emails/plain/email-order-items.php [new file with mode: 0644]
woocommerce/global/breadcrumb.php [new file with mode: 0644]
woocommerce/global/form-login.php [new file with mode: 0644]
woocommerce/global/quantity-input.php [new file with mode: 0644]
woocommerce/global/sidebar.php [new file with mode: 0644]
woocommerce/global/wrapper-end.php [new file with mode: 0644]
woocommerce/global/wrapper-start.php [new file with mode: 0644]
woocommerce/loop/add-to-cart.php [new file with mode: 0644]
woocommerce/loop/loop-end.php [new file with mode: 0644]
woocommerce/loop/loop-start.php [new file with mode: 0644]
woocommerce/loop/no-products-found.php [new file with mode: 0644]
woocommerce/loop/orderby.php [new file with mode: 0644]
woocommerce/loop/pagination.php [new file with mode: 0644]
woocommerce/loop/price.php [new file with mode: 0644]
woocommerce/loop/rating.php [new file with mode: 0644]
woocommerce/loop/result-count.php [new file with mode: 0644]
woocommerce/loop/sale-flash.php [new file with mode: 0644]
woocommerce/myaccount/form-add-payment-method.php [new file with mode: 0644]
woocommerce/myaccount/form-edit-account.php [new file with mode: 0644]
woocommerce/myaccount/form-edit-address.php [new file with mode: 0644]
woocommerce/myaccount/form-login.php [new file with mode: 0644]
woocommerce/myaccount/form-lost-password.php [new file with mode: 0644]
woocommerce/myaccount/my-account.php [new file with mode: 0644]
woocommerce/myaccount/my-address.php [new file with mode: 0644]
woocommerce/myaccount/my-downloads.php [new file with mode: 0644]
woocommerce/myaccount/my-orders.php [new file with mode: 0644]
woocommerce/myaccount/view-order.php [new file with mode: 0644]
woocommerce/notices/error.php [new file with mode: 0644]
woocommerce/notices/notice.php [new file with mode: 0644]
woocommerce/notices/success.php [new file with mode: 0644]
woocommerce/order/form-tracking.php [new file with mode: 0644]
woocommerce/order/order-details.php [new file with mode: 0644]
woocommerce/order/tracking.php [new file with mode: 0644]
woocommerce/single-product-reviews.php [new file with mode: 0644]
woocommerce/single-product.php [new file with mode: 0644]
woocommerce/single-product/add-to-cart/external.php [new file with mode: 0644]
woocommerce/single-product/add-to-cart/grouped.php [new file with mode: 0644]
woocommerce/single-product/add-to-cart/simple.php [new file with mode: 0644]
woocommerce/single-product/add-to-cart/variable.php [new file with mode: 0644]
woocommerce/single-product/meta.php [new file with mode: 0644]
woocommerce/single-product/price.php [new file with mode: 0644]
woocommerce/single-product/product-attributes.php [new file with mode: 0644]
woocommerce/single-product/product-image.php [new file with mode: 0644]
woocommerce/single-product/product-thumbnails.php [new file with mode: 0644]
woocommerce/single-product/rating.php [new file with mode: 0644]
woocommerce/single-product/related.php [new file with mode: 0644]
woocommerce/single-product/review.php [new file with mode: 0644]
woocommerce/single-product/sale-flash.php [new file with mode: 0644]
woocommerce/single-product/share.php [new file with mode: 0644]
woocommerce/single-product/short-description.php [new file with mode: 0644]
woocommerce/single-product/tabs/additional-information.php [new file with mode: 0644]
woocommerce/single-product/tabs/description.php [new file with mode: 0644]
woocommerce/single-product/tabs/tabs.php [new file with mode: 0644]
woocommerce/single-product/title.php [new file with mode: 0644]
woocommerce/single-product/up-sells.php [new file with mode: 0644]
woocommerce/taxonomy-product_cat.php [new file with mode: 0644]
woocommerce/taxonomy-product_tag.php [new file with mode: 0644]

index 87f7677..eb64fe6 100755 (executable)
@@ -7,29 +7,36 @@
                                 <div id="text" class="small-24 columns">
                                     <img id="slideshow" class="left" src="<?php echo get_template_directory_uri(); ?>/assets/slideshow.jpg">
                                     <h3>Tom's Mom's Cookies</h3>
-                                    <p>For 30 years, we have been baking award-winning cookies using the same recipe, in the same smallresort town in northern Michigan. Our chocolate chunks are hand-cut from 10 lb. bars of creamy semi-sweet chocolate and we use only the finest pecans, walnuts, almonds, macadamia nuts and locally grown Michigan dried cherries available. Weighing in at a hefty 3 ounces each, our soft and chewy cookies are for the serious cookie lover!</p>
+                                    <p>For 30 years, we have been baking award-winning cookies using the same recipe, in the same small resort town in northern Michigan. Our chocolate chunks are hand-cut from 10 lb. bars of creamy semi-sweet chocolate and we use only the finest pecans, walnuts, almonds, macadamia nuts and locally grown Michigan dried cherries available. Weighing in at a hefty 3 ounces each, our soft and chewy cookies are for the serious cookie lover!</p>
                                 </div>
                             </div>
                             <div id="boxes" class="row">
                                 <div id="award" class="small-20 small-centered large-uncentered large-7 columns text-center">
-                                    <a><img src="<?php echo get_template_directory_uri(); ?>/assets/award.png"><h4>Award Winning</h4><h5>Our cookies get people talking!</h5></a>
+                                    <a href="<?php echo esc_url( get_permalink( get_page_by_title( 'Awards' ) ) ); ?>"><img src="<?php echo get_template_directory_uri(); ?>/assets/award.png">
+                                        <h4>Award Winning</h4><h5>Our cookies get people talking!</h5>
+                                    </a>
                                 </div>
                                 <div id="box" class="small-20 small-centered large-uncentered large-7 columns text-center">
-                                    <a><img src="<?php echo get_template_directory_uri(); ?>/assets/box.png"><h4>What's New</h4><h5>Feature products & specials!</h5></a>
+                                    <a href="<?php echo esc_url( get_permalink( get_page_by_title( 'Featured Products & Specials' ) ) ); ?>"><img src="<?php echo get_template_directory_uri(); ?>/assets/box.png">
+                                        <h4>What's New</h4><h5>Feature products & specials!</h5>
+                                    </a>
                                 </div>
                                 <div id="chat" class="small-20 small-centered large-uncentered large-7 columns text-center">
-                                    <a><img src="<?php echo get_template_directory_uri(); ?>/assets/chat.png"><h4>#TomsMomsCookies</h4><h5>Share your cookie love!</h5></a>
+                                    <a href="<?php echo esc_url( get_permalink( get_page_by_title( 'Shop' ) ) ); ?>"><img src="<?php echo get_template_directory_uri(); ?>/assets/chat.png">
+                                        <h4>#TomsMomsCookies</h4><h5>Share your cookie love!</h5>
+                                    </a>
                                 </div>
                             </div>
                         </div>
                         <div id="left_side" class="small-24 medium-8 large-6 columns">
-                            <a class="show-for-medium-up" href="#"><img src="<?php echo get_template_directory_uri(); ?>/assets/cookie-bite.jpg"></a>
+                            <a id="cookie" class="show-for-medium-up" href="<?php echo esc_url( get_permalink( get_page_by_title( 'Products' ) ) ); ?>"><img src="<?php echo get_template_directory_uri(); ?>/assets/cookie-bite.jpg"></a>
                             <div id="sub" class="small-24 columns left">
                                 <h2>subscribe</h2>
-                                <p>for special offers</p>
+                                <p>for special offers</p><!--
                                 <input type="text" placeholder="name">
                                 <input type="text" placeholder="email">
-                                <a class="button">submit</a>
+                                <a class="button">submit</a>-->
+                                <?php echo do_shortcode("[ninja_forms_display_form id=1] ") ?>
                             </div>
                         </div>
                     </div>
index cb48813..51f5437 100755 (executable)
@@ -74,4 +74,30 @@ function glm_site_scripts()
 
 }
 add_action('wp_enqueue_scripts', 'glm_site_scripts');
+
+
+add_action( 'after_setup_theme', 'woocommerce_support' );
+    function woocommerce_support() {
+    add_theme_support( 'woocommerce' );
+} 
+
+
+
+
+// Remove each style one by one
+add_filter( 'woocommerce_enqueue_styles', 'jk_dequeue_styles' );
+function jk_dequeue_styles( $enqueue_styles ) {
+unset( $enqueue_styles['woocommerce-general'] ); // Remove the gloss
+unset( $enqueue_styles['woocommerce-layout'] ); // Remove the layout
+unset( $enqueue_styles['woocommerce-smallscreen'] ); // Remove the smallscreen optimisation
+return $enqueue_styles;
+}
+// Or just remove them all in one line
+add_filter( 'woocommerce_enqueue_styles', '__return_false' );
+
+
+
+
+
 ?>
+
index ea7455e..0ed204a 100755 (executable)
                         <div class="row">
                             <div class="small-24 medium-8 columns">
                                 <div id="logo">
-                                    <a href="#"><img src="<?php echo get_template_directory_uri(); ?>/assets/logo.png"></a>
+                                    <a href="<?php bloginfo('url');?>"><img src="<?php echo get_template_directory_uri(); ?>/assets/logo.png"></a>
                                 </div>
                             </div>
                             <div class="medium-8 right show-for-medium-up">
                                 <div class="cart right">
-                                    <a href="#"><img src="<?php echo get_template_directory_uri(); ?>/assets/cart.png"></a>
+                                    <a href="<?php echo esc_url( get_permalink( get_page_by_title( 'Cart' ) ) ); ?>"><img src="<?php echo get_template_directory_uri(); ?>/assets/cart.png"></a>
                                     <div id="checkout">
                                         <h3>your cart</h3>
                                         <p>$0.00 for 0 items</p>
-                                        <a href="#" class="button">checkout</a>
+                                        <a href="<?php echo esc_url( get_permalink( get_page_by_title( 'Checkout' ) ) ); ?>" class="button">checkout</a>
                                     </div>
                                 </div>
                             </div>
                 <nav class="top-bar text-cneter show-for-large-up" data-topbar role="navigation">
                     <section class="top-bar-section">
                         <ul>
-                            <li><a href="#">Cookie Shop</a></li>
-                            <li><a href="#">Shipping</a></li>
-                            <li><a href="#">FAQ</a></li>
-                            <li class="has-dropdown"><a href="#">About Us</a>
+                            <li><a href="<?php echo esc_url( get_permalink( get_page_by_title('Shop')));?>">Cookie Shop</a></li>
+                            <li><a href="<?php echo esc_url( get_permalink( get_page_by_title('Shipping')));?>">Shipping</a></li>
+                            <li><a href="<?php echo esc_url( get_permalink( get_page_by_title('FAQ')));?>">FAQ</a></li>
+                            <li class="has-dropdown"><a href="<?php echo esc_url( get_permalink( get_page_by_title( 'About Us')))?>">About Us</a>
                                 <ul class="dropdown">
-                                    <li><a href="#">Awards</a></li>
-                                    <li><a href="#">What's New</a></li>
-                                    <li><a href="#">Contact Us</a></li>
+                                    <li><a href="<?php echo esc_url( get_permalink( get_page_by_title( 'Awards' ) ) ); ?>">Awards</a></li>
+                                    <li><a href="<?php echo esc_url( get_permalink( get_page_by_title( 'Featured Products & Specials' ) ) ); ?>">What's New</a></li>
+                                    <li><a href="<?php echo esc_url( get_permalink( get_page_by_title( 'Contact Us' ) ) ); ?>">Contact Us</a></li>
                                 </ul>
                             </li>
                         </ul>
                         <a class="right-off-canvas-toggle menu-icon" href="#"><span>Menu</span></a>
                     </section>
                     <scetion class="left-small show-for-small-down">
-                        <a href="#"><img src="<?php echo get_template_directory_uri(); ?>/assets/cart.png"></a>
+                        <a href="<?php echo esc_url( get_permalink( get_page_by_title( 'Cart' ) ) ); ?>"><img src="<?php echo get_template_directory_uri(); ?>/assets/cart.png"></a>
                     </scetion>
                 </nav>
                 <aside class="right-off-canvas-menu">
                     <ul class="right-off-canvas-list">
-                        <li><a href="#">Cookie Shop</a></li>
-                        <li><a href="#">Shipping</a></li>
-                        <li><a href="#">FAQ</a></li>
-                        <li><a href="#">About Us</a>
+                        <li><a href="<?php echo esc_url( get_permalink( get_page_by_title( 'Shop' ) ) ); ?>">Cookie Shop</a></li>
+                        <li><a href="<?php echo esc_url( get_permalink( get_page_by_title( 'Shipping' ) ) ); ?>">Shipping</a></li>
+                        <li><a href="<?php echo esc_url( get_permalink( get_page_by_title( 'FAQ' ) ) ); ?>">FAQ</a></li>
+                        <li><a href="<?php echo esc_url( get_permalink( get_page_by_title( 'About Us' ) ) ); ?>">About Us</a>
                             <ul>
-                                <li><a href="#">Awards</a></li>
-                                <li><a href="#">What's New</a></li>
-                                <li><a href="#">Contact Us</a></li>
+                                <li><a href="<?php echo esc_url( get_permalink( get_page_by_title( 'Awards' ) ) ); ?>">Awards</a></li>
+                                <li><a href="<?php echo esc_url( get_permalink( get_page_by_title( 'Featured Products & Specials' ) ) ); ?>">What's New</a></li>
+                                <li><a href="<?php echo esc_url( get_permalink( get_page_by_title( 'Contact Us' ) ) ); ?>">Contact Us</a></li>
                             </ul>
                         </li>
                     </ul>
index 11fdcd0..0d22f5e 100755 (executable)
--- a/index.php
+++ b/index.php
                                 </div>
                             </div>
                             <div id="boxes" class="row">
+                                
                                 <div id="award" class="small-20 small-centered large-uncentered large-7 columns text-center">
-                                    <a><img src="<?php echo get_template_directory_uri(); ?>/assets/award.png"><h4>Award Winning</h4><h5>Our cookies get people talking!</h5></a>
+                                    <a href="/awards-recognition">
+                                        <img src="<?php echo get_template_directory_uri(); ?>/assets/award.png"><h4>Award Winning</h4><h5>Our cookies get people talking!</h5>
+                                    </a>
                                 </div>
                                 <div id="box" class="small-20 small-centered large-uncentered large-7 columns text-center">
-                                    <a><img src="<?php echo get_template_directory_uri(); ?>/assets/box.png"><h4>What's New</h4><h5>Feature products & specials!</h5></a>
+                                    <a href="/awards-recognition">
+                                        <img src="<?php echo get_template_directory_uri(); ?>/assets/box.png"><h4>What's New</h4><h5>Feature products & specials!</h5>
+                                    </a>
                                 </div>
                                 <div id="chat" class="small-20 small-centered large-uncentered large-7 columns text-center">
-                                    <a><img src="<?php echo get_template_directory_uri(); ?>/assets/chat.png"><h4>#TomsMomsCookies</h4><h5>Share your cookie love!</h5></a>
+                                    <a href="/awards-recognition">
+                                        <img src="<?php echo get_template_directory_uri(); ?>/assets/chat.png"><h4>#TomsMomsCookies</h4><h5>Share your cookie love!</h5>
+                                    </a>
                                 </div>
+                                
                             </div>
                         </div>
                         <div id="left_side" class="small-24 medium-8 large-6 columns">
diff --git a/nggallery/album-glmalbums.php b/nggallery/album-glmalbums.php
new file mode 100644 (file)
index 0000000..b971e71
--- /dev/null
@@ -0,0 +1,64 @@
+<?php
+/**
+Template Page for the album overview
+
+Follow variables are useable :
+
+    $album              : Contain information about the first album
+    $albums             : Contain information about all albums
+       $galleries   : Contain all galleries inside this album
+       $pagination  : Contain the pagination content
+
+ You can check the content when you insert the tag <?php var_dump($variable) ?>
+ If you would like to show the timestamp of the image ,you can use <?php echo $exif['created_timestamp'] ?>
+**/
+?>
+<?php if (!defined ('ABSPATH')) die ('No direct access allowed'); ?><?php if (!empty ($galleries)) : ?>
+
+<div class="ngg-albumoverview">
+
+       <!-- List of galleries -->
+       <?php foreach ($galleries as $gallery) : ?>
+
+       <div class="ngg-glmalbums small-6 medium-4 large-3">
+               <div class="ngg-album-compactbox">
+                       <div class="ngg-album-link">
+                               <a class="Link" href="<?php echo nextgen_esc_url($gallery->pagelink) ?>">
+                                       <img class="Thumb" alt="<?php echo esc_attr($gallery->title) ?>" src="<?php echo nextgen_esc_url($gallery->previewurl) ?>"/>
+                               </a>
+                       </div>
+               </div>
+        <?php if (!empty($image_gen_params)) {
+            $max_width = 'style="max-width: ' . ($image_gen_params['width'] + 20) . 'px"';
+        } else {
+            $max_width = '';
+        } ?>
+        
+            
+            
+            <h4>
+                <a class="ngg-album-desc"
+                   title="<?php echo esc_attr($gallery->title); ?>"
+                   href="<?php echo nextgen_esc_url($gallery->pagelink); ?>"
+                   <?php echo $max_width; ?>>
+                   <?php echo_safe_html($gallery->title); ?>
+                </a>
+            </h4>
+            <p class="ngg-album-gallery-image-counter">
+                <?php if ($gallery->counter > 0) { ?>
+                    <strong><?php echo $gallery->counter; ?></strong>&nbsp;<?php _e('Photos', 'nggallery'); ?>
+                <?php } else { ?>
+                    &nbsp;
+                <?php } ?>
+            </p>
+               
+       </div>
+
+       <?php endforeach; ?>
+
+       <!-- Pagination -->
+    <br class="ngg-clear"/>
+       <?php echo $pagination ?>
+</div>
+
+<?php endif; ?>
diff --git a/nggallery/gallery-glmphotos-narrow.php b/nggallery/gallery-glmphotos-narrow.php
new file mode 100644 (file)
index 0000000..bc07527
--- /dev/null
@@ -0,0 +1,55 @@
+<?php 
+/**
+Template Page for the gallery overview
+
+Follow variables are useable :
+
+       $gallery     : Contain all about the gallery
+       $images      : Contain all images, path, title
+       $pagination  : Contain the pagination content
+
+ You can check the content when you insert the tag <?php var_dump($variable) ?>
+ If you would like to show the timestamp of the image ,you can use <?php echo $exif['created_timestamp'] ?>
+**/
+?>
+<?php if (!defined ('ABSPATH')) die ('No direct access allowed'); ?><?php if (!empty ($gallery)) : ?>
+
+       <!-- Thumbnails -->
+    <?php $i = 0; ?>
+        <ul class="gallery row small-block-grid-1 medium-block-grid-2 large-block-grid-3">
+       <?php foreach ( $images as $image ) : ?>
+        <li>
+            <div id="ngg-image-<?php echo $image->pid ?>" class="ngg-gallery-thumbnail-box imgBorderMe" <?php echo $image->style ?> >
+
+                <div class="ngg-gallery-thumbnail" >
+                    <a href="<?php echo nextgen_esc_url($image->imageURL) ?>"
+                title="<?php echo esc_attr($image->description) ?>"
+                data-src="<?php echo nextgen_esc_url($image->imageURL) ?>"
+                data-thumbnail="<?php echo nextgen_esc_url($image->thumbnailURL); ?>"
+                data-image-id="<?php echo esc_attr($image->pid); ?>"
+                data-title="<?php echo esc_attr($image->alttext); ?>"
+                data-description="<?php echo esc_attr($image->description); ?>"
+                <?php echo $image->thumbcode ?> >
+                            <?php if ( !$image->hidden ) { ?>
+                        
+                        <div class="image_overlay">
+                            <img title="<?php echo esc_attr($image->alttext) ?>" alt="<?php echo esc_attr($image->alttext) ?>" src="<?php echo nextgen_esc_url($image->thumbnailURL) ?>" <?php echo $image->size ?> />
+                        </div>
+                    <span class="photoTitle" title="<?php echo esc_attr($image->alttext) ?>"><?php if (!$image->hidden) { echo esc_attr($image->alttext); }?></span>
+                            <?php } ?>
+                    </a>
+                </div>
+                
+            </div>
+        </li>
+       <?php if ( $image->hidden ) continue; ?>
+       <?php if ( $gallery->columns > 0 && ++$i % $gallery->columns == 0 ) { ?>
+       <br style="clear: both" />
+       <?php } ?>
+       <?php endforeach; ?>
+        </ul>
+       <!-- Pagination -->
+       <?php echo $pagination ?>
+</ul>
+
+<?php endif; ?>
diff --git a/nggallery/gallery-glmphotos.php b/nggallery/gallery-glmphotos.php
new file mode 100644 (file)
index 0000000..74ac570
--- /dev/null
@@ -0,0 +1,55 @@
+<?php 
+/**
+Template Page for the gallery overview
+
+Follow variables are useable :
+
+       $gallery     : Contain all about the gallery
+       $images      : Contain all images, path, title
+       $pagination  : Contain the pagination content
+
+ You can check the content when you insert the tag <?php var_dump($variable) ?>
+ If you would like to show the timestamp of the image ,you can use <?php echo $exif['created_timestamp'] ?>
+**/
+?>
+<?php if (!defined ('ABSPATH')) die ('No direct access allowed'); ?><?php if (!empty ($gallery)) : ?>
+
+       <!-- Thumbnails -->
+    <?php $i = 0; ?>
+        <ul class="gallery row small-block-grid-2 medium-block-grid-3 large-block-grid-4">
+       <?php foreach ( $images as $image ) : ?>
+        <li>
+            <div id="ngg-image-<?php echo $image->pid ?>" class="ngg-gallery-thumbnail-box imgBorderMe" <?php echo $image->style ?> >
+
+                <div class="ngg-gallery-thumbnail" >
+                    <a href="<?php echo nextgen_esc_url($image->imageURL) ?>"
+                title="<?php echo esc_attr($image->description) ?>"
+                data-src="<?php echo nextgen_esc_url($image->imageURL) ?>"
+                data-thumbnail="<?php echo nextgen_esc_url($image->thumbnailURL); ?>"
+                data-image-id="<?php echo esc_attr($image->pid); ?>"
+                data-title="<?php echo esc_attr($image->alttext); ?>"
+                data-description="<?php echo esc_attr($image->description); ?>"
+                <?php echo $image->thumbcode ?> >
+                            <?php if ( !$image->hidden ) { ?>
+                        
+                        <div class="image_overlay">
+                            <img title="<?php echo esc_attr($image->alttext) ?>" alt="<?php echo esc_attr($image->alttext) ?>" src="<?php echo nextgen_esc_url($image->thumbnailURL) ?>" <?php echo $image->size ?> />
+                        </div>
+                    <span class="photoTitle" title="<?php echo esc_attr($image->alttext) ?>"><?php if (!$image->hidden) { echo esc_attr($image->alttext); }?></span>
+                            <?php } ?>
+                    </a>
+                </div>
+                
+            </div>
+        </li>
+       <?php if ( $image->hidden ) continue; ?>
+       <?php if ( $gallery->columns > 0 && ++$i % $gallery->columns == 0 ) { ?>
+       <br style="clear: both" />
+       <?php } ?>
+       <?php endforeach; ?>
+        </ul>
+       <!-- Pagination -->
+       <?php echo $pagination ?>
+</ul>
+
+<?php endif; ?>
diff --git a/nggallery/gallery-glmvideos.php b/nggallery/gallery-glmvideos.php
new file mode 100644 (file)
index 0000000..599e8d8
--- /dev/null
@@ -0,0 +1,74 @@
+<?php 
+/**
+Template Page for the gallery overview
+
+Follow variables are useable :
+
+       $gallery     : Contain all about the gallery
+       $images      : Contain all images, path, title
+       $pagination  : Contain the pagination content
+
+ You can check the content when you insert the tag <?php var_dump($variable) ?>
+ If you would like to show the timestamp of the image ,you can use <?php echo $exif['created_timestamp'] ?>
+**/
+?>
+<?php if (!defined ('ABSPATH')) die ('No direct access allowed'); ?><?php if (!empty ($gallery)) : ?>
+
+<ul id='gallery' class='gallery row small-block-grid-2 medium-block-grid-3 large-block-grid-4'>
+<?php if ($gallery->show_slideshow) { ?>
+       <!-- Slideshow link -->
+       <div class="slideshowlink">
+               <a class="slideshowlink" href="<?php echo nextgen_esc_url($gallery->slideshow_link) ?>">
+                       <?php echo $gallery->slideshow_link_text ?>
+               </a>
+       </div>
+<?php } ?>
+
+<?php if ($gallery->show_piclens) { ?>
+       <!-- Piclense link -->
+       <div class="piclenselink">
+               <a class="piclenselink" href="<?php echo nextgen_esc_url($gallery->piclens_link) ?>">
+                       <?php _e('[View with PicLens]','nggallery'); ?>
+               </a>
+       </div>
+<?php } ?>
+       
+       <!-- Thumbnails -->
+    <?php $i = 0; ?>
+       <?php foreach ( $images as $image ) : ?>
+       <li>
+            <div id="ngg-image-<?php echo $image->pid ?>" class="ngg-gallery-thumbnail-box imgBorderMe" <?php echo $image->style ?> >
+
+                <div class="ngg-gallery-thumbnail" >
+                    <a href="<?php echo nggcf_get_field($image->pid, "video_url") ?>"
+                    title="<?php echo esc_attr($image->description) ?>"
+                    data-src="<?php echo nextgen_esc_url($image->imageURL) ?>"
+                    data-thumbnail="<?php echo nextgen_esc_url($image->thumbnailURL); ?>"
+                    data-image-id="<?php echo esc_attr($image->pid); ?>"
+                    data-title="<?php echo esc_attr($image->alttext); ?>"
+                    data-description="<?php echo esc_attr($image->description); ?>"
+                    data-url="<?php echo nggcf_get_field($image->pid, "video_url"); ?>"
+                    <?php echo $image->thumbcode ?> >
+                        <?php if ( !$image->hidden ) { ?>
+                        
+                        <div class="image_overlay">
+                            <img title="<?php echo esc_attr($image->alttext) ?>" alt="<?php echo esc_attr($image->alttext) ?>" src="<?php echo nextgen_esc_url($image->thumbnailURL) ?>" <?php echo $image->size ?> />
+                        </div>
+                    <span class="photoTitle"><?php if (!$image->hidden) { echo esc_attr($image->alttext); }?></span>
+                    
+                            <?php } ?>
+                    </a>
+                </div>
+                
+            </div>
+        </li>
+       <?php if ( $image->hidden ) continue; ?>
+       <?php if ( $gallery->columns > 0 && ++$i % $gallery->columns == 0 ) { ?>
+       <br style="clear: both" />
+       <?php } ?>
+       <?php endforeach; ?>
+       
+       <!-- Pagination -->
+       <?php echo $pagination ?>
+</ul>
+<?php endif; ?>
index 31fc960..0dae632 100755 (executable)
--- a/page.php
+++ b/page.php
                             </div>
                         </div>
                         <div id="left_side" class="small-24 medium-8 large-6 columns">
-                            <a class="show-for-medium-up" href="#"><img src="<?php get_template_directory_uri(); ?>/assets/cookie-bite.jpg"></a>
+                            <a id="cookie" class="show-for-medium-up" href="#"><img src="<?php echo get_template_directory_uri(); ?>/assets/cookie-bite.jpg"></a>
                             <div id="sub" class="small-24 columns left">
                                 <h2>subscribe</h2>
                                 <p>for special offers</p>
-                                <input type="text" placeholder="name">
-                                <input type="text" placeholder="email">
-                                <a class="button">submit</a>
+                                <?php echo do_shortcode("[ninja_forms_display_form id=1] ") ?>
                             </div>
                         </div>
                     </div>
index d2219ca..17158e9 100755 (executable)
@@ -115,10 +115,12 @@ $column-gutter: rem-calc(30);
 // $jet         : #222222;
 // $black       : #000000;
 $brown          : #675237;
+$lightbrown          : #c5ab92;
 
 // We use these as default colors throughout
-$primary-color: #f5e282;
+$primary-color: #fdf3b6;
 $secondary-color: $brown;
+$tertiary-color: #f5e282;
 // $alert-color: #f04124;
 // $success-color: #43AC6A;
 // $warning-color: #f08a24;
@@ -199,7 +201,7 @@ $body-font-family: 'Emilys Candy', cursive;
 $header-font-family: $body-font-family;
 // $header-font-weight: $font-weight-normal;
 //$header-font-style: normal;
-$header-font-color: #a0e2e2;
+$header-font-color: #675237;
 //$header-line-height: 1.4;
 //$header-top-margin: .2rem;
 //$header-bottom-margin: .5rem;
index 51318b9..c1223fc 100755 (executable)
@@ -13,9 +13,10 @@ $headerPropSides: $headerColor, sides;
 $containerColor: #fff;
 $containerPropSides: $containerColor, sides;
 .container2 {
-
     .mainContainerWrapper {
+        
         @include scallopBorder($containerPropSides...);
+        padding-top: 10px;
     }
 }
 
@@ -28,6 +29,9 @@ $footerPropSides: $footerColor, sides;
         @include scallopBorder($footerPropSides...);
     }
 }
+a {
+    color: #675237;
+}
 header {
     background: url(../assets/header_bg.png);
     .row {
@@ -41,6 +45,13 @@ footer {
         font-family: Arial, sans-serif;
     }
 } 
+input[type="text"],
+select,
+.sku_wrapper,
+.label
+{
+    font-family: Arial, sans-serif;
+}
 .inner-wrap:before {
     display: none;
 }
@@ -89,11 +100,19 @@ footer {
                     padding: 0 5px;
                     margin-left: 55px;
                     margin-top: 10px;
+                    background-color: white;
+                    color: #97c9ea;
+                    
+                }
+                a.button:hover {
+                    background-color: #97c9ea;
+                    color: white;
                 }
             }
         }
     }
     .top-bar {
+        margin-bottom: 0px;
         position: static;
         .top-bar-section {
             margin-left: 325px;
@@ -105,7 +124,10 @@ footer {
                     padding: 0;
                     a {
                         padding: 0 1rem;
-                        text-shadow: 1px 0 2px $brown, -1px 0 2px $brown, 0 1px 2px $brown, 0 -1px 2px $brown;
+                        text-shadow: 1px 0 2px $brown, -1px 0 2px $lightbrown, 0 1px 2px $lightbrown, 0 -1px 2px $lightbrown;
+                    }
+                    > a {
+                        color: $tertiary-color;
                     }
                 }
                 &:not(.has-form) a:hover:not(.button) {
@@ -137,6 +159,9 @@ footer {
     }
     #left_side {
         margin-top: 25px;
+        #cookie:hover {
+            transform: rotate(180deg);
+        }
         a {
             img {
                 margin: 35px 0 15px 25px;
@@ -148,8 +173,9 @@ footer {
             p {
                 font-family: Arial, sans-serif;
                 margin-bottom: 10px;
+                margin-top: -15px;
             }
-            a.button {
+            .button {
                 text-align: center;
                 margin-left: 50px;
                 padding: 0 25px;
@@ -166,6 +192,9 @@ footer {
         }
     }
     #boxes {
+        > div > a {
+            display:block;
+        }
         h4 {
             color: $brown;
             margin-top: -3px;
@@ -296,3 +325,1645 @@ footer {
         }
     }
 }
+
+/* Ninja Forms */
+
+.ninja-forms-form-wrap {  
+    margin-left: auto;
+    margin-right: auto;
+    margin-top: 40px;
+    max-width: 400px;
+    .ninja-forms-required-items {
+        display: none;
+    }
+    
+    .ninja-forms-success-msg {
+        padding-top: 10px;
+        padding-bottom: 10px;
+    }
+}
+.ninja-forms-form-wrap input {
+    font-size: 1rem;
+}
+/* End Ninja Forms  */
+
+/* NextGen Gallery */
+.gallery {
+    text-align: center;
+}
+/* End NextGen Gallery */
+
+/* WooCommerce */
+ul.products, .products ol, .products dl {
+        list-style-type: none;
+}
+.woocommerce-error, .woocommerce-info, .woocommerce-message, .woocommerce-noreviews, p.no-comments {
+    background-color: #fdf3b6;
+    border-left: 0.618em solid rgba(0, 0, 0, 0.15);
+    clear:both;
+    color: #675237;
+    margin-bottom: 20px;
+    margin-left: 0px;
+    padding: 10px 15px;
+    font-family: arial, sans-serif;
+    color: #675237;
+    font-weight: bold;
+    .button {
+        float:right;
+    }
+    
+}
+.products {
+    .product.type-product {
+        border: none;
+        .price {
+            color: black;
+        }
+        > div {
+            margin: 5px;
+            padding: 5px;
+            text-align:center;
+            border: 4px solid #f4d8cc;
+            border-radius: 5px;
+            img {
+                border: 2px solid #f4d8cc;
+                border-radius: 3px;
+            }
+        }
+        & > div {
+            background-color: white;
+            h3 {
+                color:#17c6c6;
+                text-shadow: 1px 1px 5px #f5e282;
+            }
+            .button {
+                background-color: #f4d8cc;
+                color: black;
+            }
+            .button:hover, .button:focus {
+                background-color: #17c6c6;
+                color: black;
+            }
+        }
+    }
+}
+
+.page-numbers {
+    list-style-type: none;
+    li {
+        margin: 0 10px;
+    }
+}
+.button {
+    color: black;
+    background-color: #f4d8cc;
+    border-radius: 3px;
+    &:hover {
+        background-color: #17c6c6;
+        color: black;
+    }
+}
+#text > .product {
+    border: 2px solid #675237;
+    background-color: #fdf3b6;
+}
+.product.type-product {
+    margin-bottom: 20px;
+    border: 2px solid #675437;
+    color: black;
+    a {
+        color: #675237;
+    }
+    > div {
+        margin: 5px;
+        padding: 5px;
+        text-align:center;
+        border-radius: 5px;
+        img {
+            border: 2px solid #f4d8cc;
+            border-radius: 3px;
+        }
+    }
+    .variations_form {
+        clear: both;
+        display: table;
+        width: 100%;
+        @media #{$small-only} {
+            .variations, 
+            .single_variation_wrap,
+            .single_variation_wrap .variations_button,
+            .single_variation_wrap .variations_button .quantity {
+                text-align:center;
+                float: none;
+                margin-left: auto;
+                margin-right: auto;
+                clear: both;
+            }
+        }
+        @media #{$medium-only} {
+            
+            .variations, 
+            .single_variation_wrap,
+            .single_variation_wrap .variations_button,
+            .single_variation_wrap .variations_button .quantity {
+                text-align:center;
+                float: none;
+                margin-left: auto;
+                margin-right: auto;
+                clear: both;
+            }
+            .single_variation_wrap .variations_button .quantity {
+                width: 170px;
+            }
+        }
+        @media #{$large-up} {
+            .variations {
+                float: left;
+            }
+            .single_variation_wrap {
+                float: right;
+                .quantity {
+                    float: left;
+                }
+            }
+        }
+    }
+    
+} 
+.woocommerce {
+        a {
+            color: #675237;
+        }
+}
+.single_variation_wrap .quantity {
+    display: flex;
+    text-align:center;
+    width: 170px;
+    margin-bottom: 10px;
+    input {
+        background-color: white;
+        height:37px;
+        width: 45px;
+        margin: 0 5px;
+    }
+}
+.quantity .qty {
+    -moz-appearance: textfield;
+    max-width: 3.631em;
+    text-align: center;
+}
+.shop_table .quantity {
+    display:table;
+    .input-text {
+        margin: 0;
+    }
+    .minus,
+    .plus {
+        background-color: transparent;
+        box-shadow: none;
+        color: #a46497;
+        font-weight: 700;
+        width: 50px;
+        height: 40px;
+    }
+}
+.quantity .minus:hover, .quantity .plus:hover {
+    background-color: transparent;
+    color: inherit !important;
+}
+
+/*
+
+.woocommerce-tabs {
+  -moz-border-bottom-colors: none;
+  -moz-border-left-colors: none;
+  -moz-border-right-colors: none;
+  -moz-border-top-colors: none;
+  border-color: rgba(0, 0, 0, 0.1);
+  border-image: none;
+  border-style: solid;
+  border-width: 1px 0;
+}
+.woocommerce-tabs {
+  margin-bottom: 2.618em;
+  padding-bottom: 2.618em;
+  padding-top: 2.618em;
+}
+
+.woocommerce-tabs ul.tabs {
+  float: left;
+  margin-right: 5.88235%;
+  text-align: left;
+  width: 29.4118%;
+}
+
+#tab-description {
+    display: block;
+}
+
+.woocommerce-tabs ul.tabs li.active:after {
+  content: "";
+  left: auto;
+  margin: -0.5em 0 0;
+  right: 0;
+  top: 50%;
+}
+
+.woocommerce-tabs ul.tabs li.active:after {
+  content: "";
+  font-family: FontAwesome;
+  height: 1em;
+  left: 50%;
+  line-height: 1;
+  margin-left: -0.5em;
+  position: absolute;
+  top: 100%;
+  width: 1em;
+}
+
+.woocommerce-tabs ul.tabs li {
+  border-bottom: 1px dotted rgba(0, 0, 0, 0.1);
+  display: block;
+  margin: 0;
+}
+
+.woocommerce-tabs ul.tabs li {
+  position: relative;
+}   
+
+
+
+
+ div.product form.cart {
+  border-bottom: 3px solid rgba(0, 0, 0, 0.024);
+  border-top: 3px solid rgba(0, 0, 0, 0.024);
+  margin-bottom: 1.618em;
+  padding: 1.618em 0;
+}
+.single-product div.product form.cart:after {
+  clear: both;
+  content: "";
+  display: table;
+}
+
+h1, .alpha {
+  font-size: 2.244em;
+  font-weight: 300;
+  letter-spacing: -1px;
+  line-height: 1.214;
+}
+.single-product div.product form.cart .quantity {
+  float: left;
+  margin-left: -1em;
+}
+
+.single-product div.product .images .woocommerce-main-image {
+  display: block;
+  margin-bottom: 1.618em;
+}
+    
+
+  
+
+
+
+.woocommerce-active .site-header .col-full {
+    position: relative;
+}
+.woocommerce-active .site-branding, .woocommerce-active .site-logo-anchor {
+    float: left;
+    margin-right: 2.618em;
+}
+.site-header-cart {
+    list-style-type: none;
+    margin-left: 0;
+    padding: 0;
+}
+.site-header-cart .cart-contents {
+    background-color: rgba(0, 0, 0, 0.05);
+    display: block;
+    height: 2.244em;
+    position: absolute;
+    right: 0;
+    text-indent: -9999px;
+    top: 0;
+    width: 2.244em;
+}
+.site-header-cart .cart-contents:after {
+    content: "";
+    font-family: FontAwesome;
+    line-height: 2.244;
+    position: absolute;
+    right: 0;
+    text-align: center;
+    text-indent: 0;
+    top: 0;
+    width: 100%;
+}
+.site-header-cart .cart-contents span {
+    display: none;
+}
+.site-header-cart .widget_shopping_cart {
+    background-color: #2c2d33;
+    display: none;
+}
+.site-search {
+    clear: both;
+    font-size: 0.857em;
+}
+.site-search .widget_product_search input[type="search"], .site-search .widget_product_search input[type="text"] {
+    line-height: 1;
+    padding: 1.387em 1.618em 1.387em 3.631em;
+}
+.site-search .widget_product_search form:before {
+    left: 1.618em;
+    top: 1.387em;
+}
+.site-search .widget_product_search #searchsubmit {
+    display: none;
+}
+ul.products {
+    clear: both;
+    margin-left: 0;
+}
+ul.products:after {
+    clear: both;
+    content: "";
+    display: table;
+}
+ul.products li.product {
+    list-style: outside none none;
+    margin-bottom: 4.236em;
+    margin-left: 0;
+    overflow: hidden;
+    position: relative;
+    text-align: center;
+}
+ul.products li.product .price, ul.products li.product .star-rating {
+    margin: 0 auto 1em;
+}
+ul.products li.product .price {
+    color: #787e87;
+    display: block;
+    font-weight: 400;
+}
+ul.products li.product .price ins {
+    background-color: transparent;
+    font-weight: 700;
+    margin-left: 0.618em;
+}
+ul.products li.product img {
+    display: block;
+    margin: 0 auto 1.618em;
+}
+ul.products li.product.product-category img {
+    margin-bottom: 1.618em;
+}
+ul.products li.product .button {
+    margin-bottom: 0.236em;
+}
+div.product {
+    overflow: hidden;
+    position: relative;
+}
+div.product:after {
+    clear: both;
+    content: "";
+    display: table;
+}
+div.product .images, div.product .summary {
+    margin-bottom: 2.618em;
+    margin-top: 0;
+}
+ div.product .images .woocommerce-main-image {
+    display: block;
+    margin-bottom: 1.618em;
+}
+ div.product .images .thumbnails a.zoom {
+    display: block;
+    float: left;
+    margin-bottom: 1em;
+    margin-right: 3.8%;
+    width: 22.05%;
+}
+ div.product .images .thumbnails a.zoom.last {
+    margin-right: 0;
+}
+ div.product .images .thumbnails a.zoom.first {
+    clear: both;
+}
+ div.product form.cart {
+    border-bottom: 3px solid rgba(0, 0, 0, 0.024);
+    border-top: 3px solid rgba(0, 0, 0, 0.024);
+    margin-bottom: 1.618em;
+    padding: 1.618em 0;
+}
+ div.product form.cart:after {
+    clear: both;
+    content: "";
+    display: table;
+}
+ div.product form.cart .quantity {
+    float: left;
+    margin-left: -1em;
+}
+ div.product form.cart .button {
+    float: right;
+}
+ div.product .price {
+    font-weight: 700;
+}
+ div.product table.variations {
+    margin: 0;
+}
+ div.product table.variations td,  div.product table.variations th {
+    background-color: transparent;
+    display: list-item;
+    list-style: outside none none;
+    padding: 0;
+}
+ div.product table.variations .value {
+    margin-bottom: 1em;
+}
+ div.product .single_variation .price {
+    display: block;
+    margin-bottom: 1em;
+}
+ div.product .variations_button {
+    border-top: 1px solid rgba(0, 0, 0, 0.1);
+    padding-top: 1em;
+}
+ div.product .variations_button:after {
+    clear: both;
+    content: "";
+    display: table;
+}
+ div.product .woocommerce-product-rating {
+    border-bottom: 1px solid rgba(0, 0, 0, 0.1);
+    line-height: 1;
+    margin-bottom: 2.618em;
+    margin-top: -0.618em;
+    padding: 0 0 1.618em;
+}
+ div.product .woocommerce-product-rating:after {
+    clear: both;
+    content: "";
+    display: table;
+}
+ div.product .woocommerce-product-rating a {
+    font-size: 0.857em;
+}
+ div.product .woocommerce-product-rating .star-rating {
+    float: right;
+}
+ div.product .product_meta {
+    font-size: 0.857em;
+}
+ div.product p.stock:before {
+    font-family: FontAwesome;
+    margin-right: 0.53em;
+}
+ div.product p.stock.in-stock:before {
+    content: "";
+}
+ div.product p.stock.out-of-stock:before {
+    content: "";
+}
+#reviews #comments {
+    padding-top: 0;
+}
+#reviews .commentlist {
+    list-style: outside none none;
+    margin-left: 0;
+}
+#reviews .commentlist li {
+    border-bottom: 1px solid rgba(0, 0, 0, 0.1);
+    list-style: outside none none;
+    margin-bottom: 3.631em;
+}
+#reviews .commentlist li time {
+    opacity: 0.8;
+}
+#reviews .commentlist li .avatar {
+    float: right;
+    height: auto;
+    width: 2.618em;
+}
+#reviews .commentlist li p.meta {
+    margin-bottom: 1em;
+}
+#reviews .commentlist li .description {
+    padding-bottom: 1.618em;
+}
+#reviews .commentlist li ul.children {
+    border-top: 1px solid rgba(0, 0, 0, 0.1);
+    float: right;
+    margin-right: 0;
+    padding-top: 2.618em;
+    width: 81.8182%;
+}
+#reviews .comment-form-author, #reviews .comment-form-email {
+    width: 47%;
+}
+#reviews .comment-form-email {
+    margin-right: 0;
+}
+#reviews .comment-form-rating {
+    clear: both;
+}
+.woocommerce-breadcrumb {
+    border-bottom: 1px solid rgba(0, 0, 0, 0.05);
+    font-size: 0.857em;
+    margin-bottom: 4.236em;
+    padding: 1em 0;
+}
+.woocommerce-breadcrumb a.home:before {
+    content: "";
+    font-family: FontAwesome;
+    font-weight: 400;
+    margin-right: 0.53em;
+}
+.product_list_widget {
+    list-style: outside none none;
+    margin-left: 0;
+}
+.product_list_widget li {
+    border-bottom: 1px dotted rgba(0, 0, 0, 0.1);
+    padding: 1em 0;
+}
+.product_list_widget li:after {
+    clear: both;
+    content: "";
+    display: table;
+}
+.product_list_widget li img {
+    float: right;
+    max-width: 2.618em;
+}
+.product_list_widget li .quantity {
+    color: #aeb2b7;
+    display: block;
+}
+.product_list_widget a {
+    color: #60656c;
+}
+.product_list_widget a:hover {
+    color: #a46497;
+}
+.widget_shopping_cart .product_list_widget {
+    margin-bottom: 0;
+}
+.widget_shopping_cart .product_list_widget li {
+    padding-left: 2em;
+    position: relative;
+}
+.widget_shopping_cart .product_list_widget li a.remove {
+    left: 0;
+    opacity: 1;
+    position: absolute;
+    top: 1em;
+}
+.widget_shopping_cart p.buttons, .widget_shopping_cart p.total {
+    margin: 0;
+    padding: 1em 0;
+    text-align: center;
+}
+.widget_shopping_cart p.total {
+    border-bottom: 1px solid rgba(0, 0, 0, 0.1);
+}
+.widget_product_categories ul {
+    margin: 0;
+}
+.widget_product_categories ul li {
+    list-style: outside none none;
+    margin-bottom: 0.618em;
+}
+.widget_product_categories ul li:before {
+    content: "";
+    display: inline-block;
+    font-family: FontAwesome;
+    margin-right: 0.53em;
+    opacity: 0.25;
+}
+.widget_product_categories ul li.current-cat:before {
+    content: "";
+}
+.widget_product_categories .children {
+    margin-left: 1.618em;
+    margin-top: 0.618em;
+}
+.site-header .widget_shopping_cart li, .site-header .widget_shopping_cart p.buttons, .site-header .widget_shopping_cart p.total {
+    background-color: rgba(0, 0, 0, 0.024);
+    padding-left: 1.387em;
+    padding-right: 1.387em;
+}
+.widget_layered_nav li {
+    margin-bottom: 0.618em;
+}
+.widget_layered_nav .chosen:before {
+    color: #e2401c;
+    content: "";
+    font-family: FontAwesome;
+    margin-right: 0.53em;
+}
+.widget.woocommerce li .count {
+    float: right;
+    font-size: 1em;
+}
+.widget_price_filter .price_slider {
+    margin-bottom: 1em;
+}
+.widget_price_filter .price_slider_amount {
+    line-height: 2.4em;
+    text-align: right;
+}
+.widget_price_filter .price_slider_amount .button {
+    float: left;
+}
+.widget_price_filter .ui-slider {
+    position: relative;
+    text-align: left;
+}
+.widget_price_filter .ui-slider .ui-slider-handle {
+    background: none repeat scroll 0 0 #a46497;
+    border-radius: 1em;
+    box-sizing: border-box;
+    cursor: ew-resize;
+    height: 1em;
+    margin-top: -0.25em;
+    opacity: 1;
+    outline: 0 none;
+    position: absolute;
+    width: 1em;
+    z-index: 2;
+}
+.widget_price_filter .ui-slider .ui-slider-handle:last-child {
+    margin-left: -1em;
+}
+.widget_price_filter .ui-slider .ui-slider-handle.ui-state-active, .widget_price_filter .ui-slider .ui-slider-handle:hover {
+    box-shadow: 0 0 0 0.236em rgba(0, 0, 0, 0.1);
+}
+.widget_price_filter .ui-slider .ui-slider-range {
+    background: none repeat scroll 0 0 #a46497;
+    border: 0 none;
+    border-radius: 1em;
+    display: block;
+    font-size: 0.7em;
+    position: absolute;
+    z-index: 1;
+}
+.widget_price_filter .price_slider_wrapper .ui-widget-content {
+    background: none repeat scroll 0 0 rgba(0, 0, 0, 0.1);
+    border-radius: 1em;
+}
+.widget_price_filter .ui-slider-horizontal {
+    height: 0.5em;
+}
+.widget_price_filter .ui-slider-horizontal .ui-slider-range {
+    height: 100%;
+    top: 0;
+}
+.widget_price_filter .ui-slider-horizontal .ui-slider-range-min {
+    left: -1px;
+}
+.widget_price_filter .ui-slider-horizontal .ui-slider-range-max {
+    right: -1px;
+}
+table.cart {
+    margin-bottom: 3.631em;
+}
+table.cart thead {
+    text-indent: -999em;
+}
+table.cart thead th {
+    padding: 0;
+}
+table.cart .product-quantity .minus, table.cart .product-quantity .plus, table.cart .product-thumbnail {
+    display: none;
+}
+table.cart td, table.cart th {
+    padding: 0.53em;
+}
+table.cart .qty {
+    max-width: 1.618em;
+    padding: 0.236em;
+}
+table.cart td.actions label {
+    display: none;
+}
+table.cart td.actions .coupon {
+    border-bottom: 1px dotted rgba(0, 0, 0, 0.1);
+    margin-bottom: 1em;
+    padding-bottom: 1em;
+}
+table.cart td.actions input {
+    display: block;
+    margin: 0.236em 0;
+    width: 100%;
+}
+.wc-proceed-to-checkout {
+    margin-bottom: 1.618em;
+}
+.wc-proceed-to-checkout:after {
+    clear: both;
+    content: "";
+    display: table;
+}
+.wc-proceed-to-checkout .button {
+    display: block;
+    margin-bottom: 1em;
+    text-align: center;
+}
+.wc-proceed-to-checkout .button.checkout-button {
+    font-size: 1.387em;
+}
+ul#shipping_method {
+    list-style: outside none none;
+    margin: 0;
+}
+a.remove {
+    display: block;
+    font-weight: 400;
+    height: 1.618em;
+    line-height: 1.618;
+    position: relative;
+    text-indent: -9999px;
+    width: 1.618em;
+}
+a.remove:before {
+    bottom: 0;
+    color: #e2401c;
+    content: "";
+    font-family: FontAwesome;
+    font-weight: 400;
+    left: 0;
+    line-height: 1.618;
+    position: absolute;
+    right: 0;
+    text-align: center;
+    text-indent: 0;
+    top: 0;
+}
+.checkout_coupon {
+    margin-bottom: 2.618em;
+}
+form.checkout:after {
+    clear: both;
+    content: "";
+    display: table;
+}
+#payment {
+    border-top: 3px solid rgba(0, 0, 0, 0.1);
+}
+#payment:after {
+    clear: both;
+    content: "";
+    display: table;
+}
+#payment .create-account {
+    clear: both;
+}
+#payment .payment_methods {
+    border-bottom: 1px dotted rgba(0, 0, 0, 0.1);
+    margin: 0 !important;
+    padding: 0 !important;
+}
+#payment .payment_methods li {
+    border-bottom: 1px dotted rgba(0, 0, 0, 0.1);
+    list-style: outside none none !important;
+    margin-left: 0;
+    padding: 1.387em !important;
+}
+#payment .payment_methods li img {
+    border: 0 none;
+    float: right;
+    max-height: 1.618em;
+    padding: 0;
+}
+#payment .payment_methods li:last-child {
+    border-bottom: 0 none;
+    padding-bottom: 0;
+}
+#payment .payment_methods li label {
+    font-weight: 700;
+    margin-left: 0.618em;
+    padding-top: 0 !important;
+    width: 92%;
+}
+#payment .payment_methods li p {
+    margin: 0;
+}
+#payment .payment_methods li .payment_box {
+    background: none repeat scroll 0 0 rgba(0, 0, 0, 0.035);
+    border-top: 1px dotted rgba(0, 0, 0, 0.1);
+    margin: 1.387em -1.387em -1.387em;
+    padding: 1.387em;
+}
+#payment .payment_methods li .payment_box fieldset {
+    border: 0 none;
+    font-size: 0.857em;
+    margin: 0;
+    padding: 1em 0 0;
+}
+#payment .payment_methods li .payment_box fieldset label {
+    margin-left: 0;
+    width: auto;
+}
+#payment .payment_methods li .payment_box fieldset .form-row {
+    margin-bottom: 1em;
+}
+#payment .payment_methods li .payment_box fieldset .form-row-first select {
+    width: 48%;
+}
+#payment .payment_methods li .payment_box fieldset .form-row-first select:nth-child(2n) {
+    float: right;
+}
+#payment .payment_methods li .payment_box fieldset #cvv {
+    width: 22% !important;
+}
+#payment .payment_methods li .payment_box fieldset .help {
+    float: right;
+    width: 75%;
+}
+#payment .terms {
+    clear: both;
+    float: none;
+    margin-bottom: 0;
+    margin-top: 1em;
+    width: 100%;
+}
+#payment .terms label {
+    display: inline;
+}
+#payment .terms input {
+    display: inline-block;
+    float: left;
+    margin: 0.327em 0.53em 0 0;
+    width: auto;
+}
+#payment .place-order {
+    float: none;
+    margin-bottom: 0;
+    padding: 1.387em;
+    width: 100%;
+}
+#payment .place-order .button {
+    font-size: 1.387em;
+    width: 100%;
+}
+#customer_login .col-1 {
+    border-bottom: 1px dotted rgba(0, 0, 0, 0.1);
+    margin-bottom: 1.618em;
+    padding-bottom: 1.618em;
+}
+ul.order_details {
+    border: 1px solid rgba(0, 0, 0, 0.1);
+    list-style: outside none none;
+    margin-left: 0;
+    position: relative;
+}
+ul.order_details:after {
+    clear: both;
+    content: "";
+    display: table;
+}
+ul.order_details li {
+    border-right: 1px solid rgba(0, 0, 0, 0.1);
+    float: left;
+    font-size: 0.8em;
+    padding: 1em 1.618em;
+    text-transform: uppercase;
+}
+ul.order_details li:last-child {
+    border-right: 0 none;
+}
+ul.order_details li strong {
+    display: block;
+    font-size: 1.387em;
+    text-transform: none;
+}
+ul.digital-downloads {
+    list-style: outside none none;
+    margin-left: 0;
+}
+ul.digital-downloads li {
+    border-bottom: 1px dotted rgba(0, 0, 0, 0.1);
+    margin-bottom: 1em;
+    padding-bottom: 1em;
+}
+ul.digital-downloads li:before {
+    content: "";
+    font-family: FontAwesome;
+    margin-right: 0.53em;
+}
+.my_account_orders .button {
+    font-size: 0.857em;
+    padding: 0.53em 1em;
+}
+.form-row label {
+    display: block;
+}
+.form-row input, .form-row textarea {
+    width: 100%;
+}
+.form-row .button, .form-row input[type="checkbox"], .form-row input[type="radio"] {
+    width: auto;
+}
+.form-row.create-account label {
+    display: inline-block;
+}
+.form-row.woocommerce-validated input.input-text {
+    box-shadow: 2px 0 0 #17ba6f inset;
+}
+.form-row.woocommerce-invalid input.input-text {
+    box-shadow: 2px 0 0 #e2401c inset;
+}
+.form-row-last {
+    margin-right: 0 !important;
+}
+.form-row-wide {
+    clear: both;
+    width: 100%;
+}
+.required {
+    border-bottom: 0 none !important;
+    color: red;
+}
+.demo_store {
+    background-color: #3d9cd2;
+    bottom: 0;
+    color: #fff;
+    left: 0;
+    margin: 0;
+    padding: 1em 1.387em;
+    position: fixed;
+    right: 0;
+}
+.demo_store:before {
+    content: "";
+    font-family: FontAwesome;
+    margin-right: 0.53em;
+}
+.star-rating {
+    font-family: fontawesome;
+    font-size: 1em;
+    font-weight: 400;
+    height: 1em;
+    line-height: 1em;
+    overflow: hidden;
+    position: relative;
+    width: 4.64em;
+}
+.star-rating:before {
+    color: rgba(0, 0, 0, 0.2);
+    content: "";
+    float: left;
+    left: 0;
+    position: absolute;
+    top: 0;
+}
+.star-rating span {
+    float: left;
+    left: 0;
+    overflow: hidden;
+    padding-top: 1.618em;
+    position: absolute;
+    top: 0;
+}
+.star-rating span:before {
+    color: #a46497;
+    content: "";
+    left: 0;
+    position: absolute;
+    top: 0;
+}
+p.stars {
+    font-size: 1.618em;
+    position: relative;
+}
+p.stars a {
+    color: #787e87;
+    display: block;
+    font-weight: 700;
+    margin-right: 1em;
+    position: relative;
+    text-indent: -9999px;
+}
+p.stars a:hover {
+    color: #a46497;
+}
+p.stars a:last-child {
+    border-right: 0 none;
+}
+p.stars a.star-1:after, p.stars a.star-2:after, p.stars a.star-3:after, p.stars a.star-4:after, p.stars a.star-5:after {
+    font-family: FontAwesome;
+    left: 0;
+    padding-right: 1em;
+    position: absolute;
+    text-indent: 0;
+    top: 0;
+}
+p.stars a.star-1 {
+    width: 2em;
+}
+p.stars a.star-1:after {
+    content: "";
+}
+p.stars a.star-1.active:after, p.stars a.star-1:hover:after {
+    content: "";
+}
+p.stars a.star-2 {
+    width: 3em;
+}
+p.stars a.star-2:after {
+    content: "";
+}
+p.stars a.star-2.active:after, p.stars a.star-2:hover:after {
+    content: "";
+}
+p.stars a.star-3 {
+    width: 4em;
+}
+p.stars a.star-3:after {
+    content: "";
+}
+p.stars a.star-3.active:after, p.stars a.star-3:hover:after {
+    content: "";
+}
+p.stars a.star-4 {
+    width: 5em;
+}
+p.stars a.star-4:after {
+    content: "";
+}
+p.stars a.star-4.active:after, p.stars a.star-4:hover:after {
+    content: "";
+}
+p.stars a.star-5 {
+    border: 0 none;
+    width: 6em;
+}
+p.stars a.star-5:after {
+    content: "";
+}
+p.stars a.star-5.active:after, p.stars a.star-5:hover:after {
+    content: "";
+}
+.onsale {
+    border: 2px solid #787e87;
+    color: #787e87;
+    display: inline-block;
+    font-size: 0.857em;
+    font-weight: 700;
+    margin-bottom: 1em;
+    padding: 0.202em 0.618em;
+    text-transform: uppercase;
+}
+.quantity .qty {
+    -moz-appearance: textfield;
+    max-width: 3.631em;
+    text-align: center;
+}
+.quantity .minus, .quantity .plus {
+    background-color: transparent;
+    box-shadow: none;
+    color: #a46497;
+    font-weight: 700;
+}
+.quantity .minus:hover, .quantity .plus:hover {
+    background-color: transparent;
+    color: inherit !important;
+}
+.woocommerce-ordering, .woocommerce-result-count {
+    font-size: 0.857em;
+    margin-bottom: 2.618em;
+}
+.woocommerce-tabs {
+    -moz-border-bottom-colors: none;
+    -moz-border-left-colors: none;
+    -moz-border-right-colors: none;
+    -moz-border-top-colors: none;
+    border-color: rgba(0, 0, 0, 0.1);
+    border-image: none;
+    border-style: solid;
+    border-width: 1px 0;
+    padding: 1em 0;
+}
+.woocommerce-tabs ul.tabs {
+    list-style: outside none none;
+    margin-left: 0;
+    text-align: center;
+}
+.woocommerce-tabs ul.tabs li {
+    display: inline-block;
+    margin-right: 1em;
+    position: relative;
+}
+.woocommerce-tabs ul.tabs li.active a {
+    color: #787e87;
+}
+.woocommerce-tabs ul.tabs li.active:after {
+    content: "";
+    font-family: FontAwesome;
+    height: 1em;
+    left: 50%;
+    line-height: 1;
+    margin-left: -0.5em;
+    position: absolute;
+    top: 100%;
+    width: 1em;
+}
+.woocommerce-error, .woocommerce-info, .woocommerce-message, .woocommerce-noreviews, p.no-comments {
+    background-color: #17ba6f;
+    border-left: 0.618em solid rgba(0, 0, 0, 0.15);
+    clear: both;
+    color: #fff;
+    margin-bottom: 2.618em;
+    margin-left: 0;
+    padding: 1em 1.618em;
+}
+.woocommerce-error:after, .woocommerce-info:after, .woocommerce-message:after, .woocommerce-noreviews:after, p.no-comments:after {
+    clear: both;
+    content: "";
+    display: table;
+}
+.woocommerce-error a, .woocommerce-info a, .woocommerce-message a, .woocommerce-noreviews a, p.no-comments a {
+    color: #fff;
+}
+.woocommerce-error a:hover, .woocommerce-info a:hover, .woocommerce-message a:hover, .woocommerce-noreviews a:hover, p.no-comments a:hover {
+    color: #fff;
+    opacity: 0.7;
+}
+.woocommerce-error a.button:hover, .woocommerce-info a.button:hover, .woocommerce-message a.button:hover, .woocommerce-noreviews a.button:hover, p.no-comments a.button:hover {
+    opacity: 1;
+}
+.woocommerce-error .button, .woocommerce-info .button, .woocommerce-message .button, .woocommerce-noreviews .button, p.no-comments .button {
+    background: none repeat scroll 0 0 rgba(0, 0, 0, 0);
+    border-left-color: rgba(255, 255, 255, 0.25) !important;
+    border-left-style: solid;
+    border-radius: 0;
+    border-width: 0 0 0 1px;
+    box-shadow: none;
+    color: #fff;
+    float: right;
+    line-height: 1.618;
+    padding: 0 0 0 1em;
+}
+.woocommerce-error .button:hover, .woocommerce-info .button:hover, .woocommerce-message .button:hover, .woocommerce-noreviews .button:hover, p.no-comments .button:hover {
+    background: none repeat scroll 0 0 rgba(0, 0, 0, 0);
+    color: #fff;
+    opacity: 0.7;
+}
+.wc-forward:after {
+    content: "";
+    font-family: FontAwesome;
+    font-weight: 400;
+    margin-left: 0.53em;
+}
+.woocommerce-error {
+    list-style: outside none none;
+}
+.woocommerce-info, .woocommerce-noreviews, p.no-comments {
+    background-color: #3d9cd2;
+}
+.woocommerce-error {
+    background-color: #e2401c;
+}
+dl.variation {
+    font-size: 0.857em;
+}
+dl.variation dd {
+    margin: 0 0 1em;
+}
+.storefront-product-section {
+    border-bottom: 3px solid rgba(0, 0, 0, 0.024);
+    margin-bottom: 4.236em;
+}
+.storefront-product-section .section-title {
+    text-align: center;
+}
+.storefront-product-section:last-child {
+    border-bottom: 0 none;
+}
+@media screen and (min-width: 768px) {
+p.stars {
+    font-size: 1em;
+}
+p.stars a {
+    display: inline-block;
+}
+p.stars a.star-1, p.stars a.star-2, p.stars a.star-3, p.stars a.star-4 {
+    border-right: 1px solid rgba(0, 0, 0, 0.1);
+}
+.site-header-cart {
+    position: relative;
+}
+.site-header-cart .cart-contents {
+    background-color: transparent;
+    display: block;
+    height: auto;
+    padding: 0 1em 2.244em;
+    position: relative;
+    text-indent: 0;
+    width: auto;
+}
+.site-header-cart .cart-contents:after {
+    height: 1em;
+    line-height: 1.387;
+    right: 1.618em;
+    top: 0;
+    width: 1em;
+}
+.site-header-cart .cart-contents .amount {
+    margin-right: 0.327em;
+}
+.site-header-cart .cart-contents .count {
+    font-size: 0.857em;
+    font-weight: 400;
+    opacity: 0.5;
+}
+.site-header-cart .cart-contents span {
+    display: inline;
+}
+.site-header-cart .widget_shopping_cart {
+    display: none;
+    font-size: 0.857em;
+    left: 0;
+    position: absolute;
+    top: 100%;
+    width: 100%;
+    z-index: 999999;
+}
+.site-header-cart .widget_shopping_cart h2.widgettitle {
+    display: none;
+}
+.site-header-cart .widget_shopping_cart .product_list_widget li a.remove {
+    float: left;
+    position: relative;
+    top: auto;
+}
+.site-header-cart .widget_shopping_cart .product_list_widget li a.remove:before {
+    text-align: left;
+}
+.site-header-cart:hover .widget_shopping_cart {
+    display: block;
+}
+ul.products li.product {
+    clear: none;
+    float: left;
+    font-size: 0.857em;
+    width: 100%;
+}
+ul.products li.product.first {
+    clear: both !important;
+}
+ul.products li.product.last {
+    margin-right: 0 !important;
+}
+.page-template-template-fullwidth-php .site-main .columns-1 ul.products li.product, .page-template-template-homepage-php .site-main .columns-1 ul.products li.product, .storefront-full-width-content .site-main .columns-1 ul.products li.product {
+    float: none;
+    margin-right: 0;
+    width: 100%;
+}
+.page-template-template-fullwidth-php .site-main .columns-2 ul.products li.product, .page-template-template-homepage-php .site-main .columns-2 ul.products li.product, .storefront-full-width-content .site-main .columns-2 ul.products li.product {
+    float: left;
+    margin-right: 4.34783%;
+    width: 47.8261%;
+}
+.page-template-template-fullwidth-php .site-main .columns-3 ul.products li.product, .page-template-template-homepage-php .site-main .columns-3 ul.products li.product, .storefront-full-width-content .site-main .columns-3 ul.products li.product {
+    float: left;
+    margin-right: 4.34783%;
+    width: 30.4348%;
+}
+.page-template-template-fullwidth-php .site-main .columns-4 ul.products li.product, .page-template-template-homepage-php .site-main .columns-4 ul.products li.product, .storefront-full-width-content .site-main .columns-4 ul.products li.product {
+    float: left;
+    margin-right: 4.34783%;
+    width: 21.7391%;
+}
+.page-template-template-fullwidth-php .site-main .columns-5 ul.products li.product, .page-template-template-homepage-php .site-main .columns-5 ul.products li.product, .storefront-full-width-content .site-main .columns-5 ul.products li.product {
+    margin-right: 3.8%;
+    width: 16.9%;
+}
+.site-main .columns-1 ul.products li.product {
+    float: none;
+    margin-right: 0;
+    width: 100%;
+}
+.site-main .columns-2 ul.products li.product {
+    margin-right: 3.8%;
+    width: 48%;
+}
+.site-main .columns-3 ul.products li.product {
+    float: left;
+    margin-right: 5.88235%;
+    width: 29.4118%;
+}
+.site-main .columns-4 ul.products li.product {
+    margin-right: 3.8%;
+    width: 22.05%;
+}
+.site-main .columns-5 ul.products li.product {
+    margin-right: 3.8%;
+    width: 16.9%;
+}
+.site-main ul.products li.product {
+    float: left;
+    margin-right: 5.88235%;
+    width: 29.4118%;
+}
+ div.product .images {
+    float: left;
+    margin-bottom: 3.631em;
+    margin-right: 5.88235%;
+    width: 41.1765%;
+}
+ div.product .images .thumbnails:after {
+    clear: both;
+    content: "";
+    display: table;
+}
+ div.product .images .thumbnails a.zoom {
+    float: left;
+    margin-right: 14.2857%;
+    width: 14.2857%;
+}
+ div.product .images .thumbnails a.zoom.last {
+    float: right;
+    margin-right: 0;
+}
+ div.product .summary {
+    float: right;
+    margin-bottom: 3.631em;
+    margin-right: 0;
+    width: 52.9412%;
+}
+ div.product .woocommerce-tabs {
+    clear: both;
+}
+.storefront-full-width-content div.product .images {
+    float: left;
+    margin-bottom: 3.631em;
+    margin-right: 4.34783%;
+    width: 30.4348%;
+}
+.storefront-full-width-content div.product .images .thumbnails a.zoom {
+    float: left;
+    margin-right: 14.2857%;
+    width: 14.2857%;
+}
+.storefront-full-width-content div.product .images .thumbnails a.zoom.last {
+    margin-right: 0;
+}
+.storefront-full-width-content div.product .summary {
+    float: right;
+    margin-bottom: 3.631em;
+    margin-right: 0;
+    width: 65.2174%;
+}
+.storefront-full-width-content div.product .woocommerce-tabs {
+    clear: both;
+}
+.storefront-full-width-content .related ul.products li.product, .storefront-full-width-content .upsells ul.products li.product {
+    float: left;
+    margin-right: 4.34783%;
+    width: 30.4348%;
+}
+.woocommerce .page-description {
+    float: left;
+    margin-bottom: 1.618em;
+    margin-right: 5.88235%;
+    width: 64.7059%;
+}
+.woocommerce-result-count {
+    clear: both;
+    float: left;
+    padding-bottom: 1em;
+    position: relative;
+}
+.woocommerce-ordering {
+    float: right;
+}
+.page-template-template-fullwidth-php table.cart .product-thumbnail {
+    display: table-cell;
+}
+.page-template-template-fullwidth-php table.cart .product-thumbnail img {
+    border: 0.327em solid #fff;
+    height: auto;
+    max-width: 3.631em;
+}
+.page-template-template-fullwidth-php table.cart thead {
+    font-size: 1em;
+    text-indent: 0;
+}
+.page-template-template-fullwidth-php table.cart thead th, table.cart td, table.cart th {
+    padding: 0.857em 1.387em;
+}
+table.cart .qty {
+    max-width: 3.632em;
+    padding: 0.857em;
+}
+table.cart .product-remove {
+    display: table-cell;
+}
+table.cart .product-quantity .minus, table.cart .product-quantity .plus {
+    display: inline-block;
+}
+table.cart .quantity {
+    min-width: 9.505em;
+}
+table.cart .quantity .minus, table.cart .quantity .plus, table.cart .quantity .qty {
+    padding: 0.618em;
+}
+table.cart td.actions {
+    text-align: right;
+}
+table.cart td.actions label {
+    display: none;
+}
+table.cart td.actions .coupon {
+    border-bottom: medium none;
+    display: inline-block;
+    float: left;
+    margin-bottom: 0;
+    padding-bottom: 0;
+}
+table.cart td.actions input {
+    display: inline-block;
+    margin: 0;
+    width: auto;
+}
+.cart-collaterals:after {
+    clear: both;
+    content: "";
+    display: table;
+}
+.cart-collaterals .cross-sells {
+    float: left;
+    margin-right: 5.88235%;
+    width: 41.1765%;
+}
+.cart-collaterals .cross-sells ul.products li.product {
+    float: left;
+    margin-right: 14.2857%;
+    width: 42.8571%;
+}
+.cart-collaterals .cart_totals, .cart-collaterals .shipping_calculator {
+    clear: right;
+    float: right;
+    margin: 0;
+    width: 52.9412%;
+}
+.cart-collaterals .shipping_calculator {
+    clear: right;
+}
+.page-template-template-fullwidth-php .cart-collaterals .cross-sells {
+    float: left;
+    margin-right: 4.34783%;
+    width: 47.8261%;
+}
+.page-template-template-fullwidth-php .cart-collaterals .cross-sells ul.products li.product {
+    float: left;
+    margin-right: 9.09091%;
+    width: 45.4546%;
+}
+.page-template-template-fullwidth-php .cart-collaterals .cart_totals, .page-template-template-fullwidth-php .cart-collaterals .shipping_calculator {
+    float: right;
+    margin-right: 0;
+    width: 47.8261%;
+}
+#customer_details {
+    float: left;
+    margin-right: 5.88235%;
+    width: 52.9412%;
+}
+#customer_details .form-row-first {
+    float: left;
+    margin-right: 11.1111%;
+    width: 33.3333%;
+}
+#customer_details .form-row-last {
+    float: right;
+    margin-right: 0;
+    width: 55.5556%;
+}
+#customer_details .col-1, #customer_details .col-2 {
+    margin-bottom: 1.618em;
+}
+#order_review, #order_review_heading {
+    border: 3px solid #a46497;
+    clear: none;
+    float: right;
+    margin-right: 0;
+    width: 41.1765%;
+}
+#order_review_heading {
+    border-width: 3px 3px 0;
+    margin-bottom: 0;
+    padding: 0.618em 2.08333%;
+}
+#order_review {
+    border-width: 0 3px 3px;
+}
+#wc_checkout_add_ons {
+    float: left;
+    margin-right: 5.88235%;
+    width: 41.1765%;
+}
+.page-template-template-fullwidth-php #customer_details {
+    float: left;
+    margin-right: 4.34783%;
+    width: 47.8261%;
+}
+.page-template-template-fullwidth-php #customer_details .form-row-first {
+    float: left;
+    margin-right: 9.09091%;
+    width: 45.4546%;
+}
+.page-template-template-fullwidth-php #customer_details .form-row-last {
+    float: right;
+    margin-right: 0;
+    width: 45.4546%;
+}
+.page-template-template-fullwidth-php #order_review, .page-template-template-fullwidth-php #order_review_heading, .page-template-template-fullwidth-php #wc_checkout_add_ons {
+    float: right;
+    margin-right: 0;
+    width: 47.8261%;
+}
+.page-template-template-fullwidth-php #order_review {
+    font-size: 0.857em;
+}
+#order_review .shop_table {
+    margin-bottom: 2.618em;
+}
+.form-row-first {
+    clear: both;
+    float: left;
+    margin-right: 5.88235%;
+    width: 47.0588%;
+}
+.form-row-last {
+    float: right;
+    margin-right: 0;
+    width: 47.0588%;
+}
+.page-template-template-fullwidth-php .form-row-first {
+    float: left;
+    margin-right: 4.34783%;
+    width: 47.8261%;
+}
+.page-template-template-fullwidth-php .form-row-last {
+    float: right;
+    margin-right: 0;
+    width: 47.8261%;
+}
+.storefront-full-width-content .woocommerce-tabs ul.tabs {
+    float: left;
+    margin-right: 4.34783%;
+    width: 30.4348%;
+}
+.storefront-full-width-content .woocommerce-tabs .panel {
+    float: right;
+    margin-bottom: 3.631em;
+    margin-right: 0;
+    width: 65.2174%;
+}
+.woocommerce-tabs {
+    margin-bottom: 2.618em;
+    padding-bottom: 2.618em;
+    padding-top: 2.618em;
+}
+.woocommerce-tabs:after {
+    clear: both;
+    content: "";
+    display: table;
+}
+.woocommerce-tabs ul.tabs {
+    float: left;
+    margin-right: 5.88235%;
+    text-align: left;
+    width: 29.4118%;
+}
+.woocommerce-tabs ul.tabs li {
+    border-bottom: 1px dotted rgba(0, 0, 0, 0.1);
+    display: block;
+    margin: 0;
+}
+.woocommerce-tabs ul.tabs li a {
+    display: block;
+    padding: 1em 0;
+}
+.woocommerce-tabs ul.tabs li.active:after {
+    content: "";
+    left: auto;
+    margin: -0.5em 0 0;
+    right: 0;
+    top: 50%;
+}
+.woocommerce-tabs .panel {
+    float: right;
+    margin-right: 0;
+    margin-top: 0;
+    width: 64.7059%;
+}
+}*/
diff --git a/sidebar.php b/sidebar.php
new file mode 100644 (file)
index 0000000..6f05ef7
--- /dev/null
@@ -0,0 +1,19 @@
+
+                    <aside class="left-off-canvas-menu">
+                        <ul class="off-canvas-list">
+                            <?php wp_nav_menu(array('menu_class' => ''));?>
+                        </ul>
+                        <div id="searchform_container" class="small-12">
+                            <form role="search" method="get" id="searchform" action="<?php echo home_url('/'); ?>">
+                                <div id="search_off_canvas">
+                                        <div>
+                                            <input name="s" id="s" type="text" placeholder="  Search the site">
+                                        </div>
+                                        <div class="small-11 centered columns button">Search</div>
+                                </div>
+                            </form>
+                        </div>
+                        <?php if (is_active_sidebar('sidebar-l')) :?>
+                            <?php dynamic_sidebar('sidebar-l');?>
+                        <?php endif;?>
+                    </aside> <!-- left-off-canvas-menu -->
diff --git a/woocommerce.php b/woocommerce.php
new file mode 100644 (file)
index 0000000..7086811
--- /dev/null
@@ -0,0 +1,39 @@
+<?php get_header(); ?>
+            <div class="container2">
+                <div class="mainContainerWrapper">
+                    <div class="row">
+                        <div class="small-24 medium-16 large-18 columns right">
+                            <div class="row">
+                                <div id="text" class="small-24 columns">
+                                    <?php woocommerce_content();?> 
+                                </div>
+                            </div>
+                            <div id="boxes" class="row">
+                                <div id="award" class="small-20 small-centered large-uncentered large-7 columns text-center">
+                                    <a><img src="<?php echo get_template_directory_uri(); ?>/assets/award.png"><h4>Award Winning</h4><h5>Our cookies get people talking!</h5></a>
+                                </div>
+                                <div id="box" class="small-20 small-centered large-uncentered large-7 columns text-center">
+                                    <a><img src="<?php echo get_template_directory_uri(); ?>/assets/box.png"><h4>What's New</h4><h5>Feature products & specials!</h5></a>
+                                </div>
+                                <div id="chat" class="small-20 small-centered large-uncentered large-7 columns text-center">
+                                    <a><img src="<?php echo get_template_directory_uri(); ?>/assets/chat.png"><h4>#TomsMomsCookies</h4><h5>Share your cookie love!</h5></a>
+                                </div>
+                            </div>
+                        </div>
+                        <div id="left_side" class="small-24 medium-8 large-6 columns">
+                            <a id="cookie" class="show-for-medium-up" href="#"><img src="<?php echo get_template_directory_uri(); ?>/assets/cookie-bite.jpg"></a>
+                            <div id="sub" class="small-24 columns left">
+                                <h2>subscribe</h2>
+                                <p>for special offers</p>
+                                <input type="text" placeholder="name">
+                                <input type="text" placeholder="email">
+                                <a class="button">submit</a>
+                            </div>
+                        </div>
+                    </div>
+                    <div id="divide">
+                        <img src="<?php echo get_template_directory_uri(); ?>/assets/divider.png">
+                    </div>
+                </div>
+            </div>
+<?php get_footer(); ?>
diff --git a/woocommerce/archive-product.php b/woocommerce/archive-product.php
new file mode 100644 (file)
index 0000000..45539d2
--- /dev/null
@@ -0,0 +1,91 @@
+<?php
+/**
+ * The Template for displaying product archives, including the main shop page which is a post type archive.
+ *
+ * Override this template by copying it to yourtheme/woocommerce/archive-product.php
+ *
+ * @author             WooThemes
+ * @package    WooCommerce/Templates
+ * @version     2.0.0
+ */
+
+if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
+
+get_header( 'shop' ); ?>
+
+       <?php
+               /**
+                * woocommerce_before_main_content hook
+                *
+                * @hooked woocommerce_output_content_wrapper - 10 (outputs opening divs for the content)
+                * @hooked woocommerce_breadcrumb - 20
+                */
+               do_action( 'woocommerce_before_main_content' );
+       ?>
+
+               <?php if ( apply_filters( 'woocommerce_show_page_title', true ) ) : ?>
+
+                       <h2 class="page-title"><?php woocommerce_page_title(); ?></h2>
+
+               <?php endif; ?>
+
+               <?php do_action( 'woocommerce_archive_description' ); ?>
+
+               <?php if ( have_posts() ) : ?>
+
+                       <?php
+                               /**
+                                * woocommerce_before_shop_loop hook
+                                *
+                                * @hooked woocommerce_result_count - 20
+                                * @hooked woocommerce_catalog_ordering - 30
+                                */
+                               do_action( 'woocommerce_before_shop_loop' );
+                       ?>
+
+                       <?php woocommerce_product_loop_start(); ?>
+
+                               <?php woocommerce_product_subcategories(); ?>
+
+                               <?php while ( have_posts() ) : the_post(); ?>
+
+                                       <?php wc_get_template_part( 'content', 'product' ); ?>
+
+                               <?php endwhile; // end of the loop. ?>
+
+                       <?php woocommerce_product_loop_end(); ?>
+
+                       <?php
+                               /**
+                                * woocommerce_after_shop_loop hook
+                                *
+                                * @hooked woocommerce_pagination - 10
+                                */
+                               do_action( 'woocommerce_after_shop_loop' );
+                       ?>
+
+               <?php elseif ( ! woocommerce_product_subcategories( array( 'before' => woocommerce_product_loop_start( false ), 'after' => woocommerce_product_loop_end( false ) ) ) ) : ?>
+
+                       <?php wc_get_template( 'loop/no-products-found.php' ); ?>
+
+               <?php endif; ?>
+
+       <?php
+               /**
+                * woocommerce_after_main_content hook
+                *
+                * @hooked woocommerce_output_content_wrapper_end - 10 (outputs closing divs for the content)
+                */
+               do_action( 'woocommerce_after_main_content' );
+       ?>
+
+       <?php
+               /**
+                * woocommerce_sidebar hook
+                *
+                * @hooked woocommerce_get_sidebar - 10
+                */
+               do_action( 'woocommerce_sidebar' );
+       ?>
+
+<?php get_footer( 'shop' ); ?>
\ No newline at end of file
diff --git a/woocommerce/cart/cart-empty.php b/woocommerce/cart/cart-empty.php
new file mode 100644 (file)
index 0000000..d4547bb
--- /dev/null
@@ -0,0 +1,20 @@
+<?php
+/**
+ * Empty cart page
+ *
+ * @author             WooThemes
+ * @package    WooCommerce/Templates
+ * @version     2.0.0
+ */
+
+if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
+
+wc_print_notices();
+
+?>
+
+<p class="cart-empty"><?php _e( 'Your cart is currently empty.', 'woocommerce' ) ?></p>
+
+<?php do_action( 'woocommerce_cart_is_empty' ); ?>
+
+<p class="return-to-shop"><a class="button wc-backward" href="<?php echo apply_filters( 'woocommerce_return_to_shop_redirect', get_permalink( wc_get_page_id( 'shop' ) ) ); ?>"><?php _e( 'Return To Shop', 'woocommerce' ) ?></a></p>
\ No newline at end of file
diff --git a/woocommerce/cart/cart-item-data.php b/woocommerce/cart/cart-item-data.php
new file mode 100644 (file)
index 0000000..9ab4685
--- /dev/null
@@ -0,0 +1,21 @@
+<?php
+/**
+ * Cart item data (when outputting non-flat)
+ *
+ * @author             WooThemes
+ * @package    WooCommerce/Templates
+ * @version    2.1.0
+ */
+
+if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
+
+?>
+<dl class="variation">
+       <?php
+               foreach ( $item_data as $data ) :
+                       $key = sanitize_text_field( $data['key'] );
+       ?>
+               <dt class="variation-<?php echo sanitize_html_class( $key ); ?>"><?php echo wp_kses_post( $data['key'] ); ?>:</dt>
+               <dd class="variation-<?php echo sanitize_html_class( $key ); ?>"><?php echo wp_kses_post( wpautop( $data['value'] ) ); ?></dd>
+       <?php endforeach; ?>
+</dl>
diff --git a/woocommerce/cart/cart-shipping.php b/woocommerce/cart/cart-shipping.php
new file mode 100644 (file)
index 0000000..5e4ab73
--- /dev/null
@@ -0,0 +1,97 @@
+<?php
+/**
+ * Shipping Methods Display
+ *
+ * In 2.1 we show methods per package. This allows for multiple methods per order if so desired.
+ *
+ * @author             WooThemes
+ * @package    WooCommerce/Templates
+ * @version     2.1.0
+ */
+if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
+?>
+<tr class="shipping">
+       <th><?php
+               if ( $show_package_details ) {
+                       printf( __( 'Shipping #%d', 'woocommerce' ), $index + 1 );
+               } else {
+                       _e( 'Shipping and Handling', 'woocommerce' );
+               }
+       ?></th>
+       <td>
+               <?php if ( ! empty( $available_methods ) ) : ?>
+
+                       <?php if ( 1 === count( $available_methods ) ) :
+                               $method = current( $available_methods );
+
+                               echo wp_kses_post( wc_cart_totals_shipping_method_label( $method ) ); ?>
+                               <input type="hidden" name="shipping_method[<?php echo $index; ?>]" data-index="<?php echo $index; ?>" id="shipping_method_<?php echo $index; ?>" value="<?php echo esc_attr( $method->id ); ?>" class="shipping_method" />
+
+                       <?php elseif ( get_option( 'woocommerce_shipping_method_format' ) === 'select' ) : ?>
+
+                               <select name="shipping_method[<?php echo $index; ?>]" data-index="<?php echo $index; ?>" id="shipping_method_<?php echo $index; ?>" class="shipping_method">
+                                       <?php foreach ( $available_methods as $method ) : ?>
+                                               <option value="<?php echo esc_attr( $method->id ); ?>" <?php selected( $method->id, $chosen_method ); ?>><?php echo wp_kses_post( wc_cart_totals_shipping_method_label( $method ) ); ?></option>
+                                       <?php endforeach; ?>
+                               </select>
+
+                       <?php else : ?>
+
+                               <ul id="shipping_method">
+                                       <?php foreach ( $available_methods as $method ) : ?>
+                                               <li>
+                                                       <input type="radio" name="shipping_method[<?php echo $index; ?>]" data-index="<?php echo $index; ?>" id="shipping_method_<?php echo $index; ?>_<?php echo sanitize_title( $method->id ); ?>" value="<?php echo esc_attr( $method->id ); ?>" <?php checked( $method->id, $chosen_method ); ?> class="shipping_method" />
+                                                       <label for="shipping_method_<?php echo $index; ?>_<?php echo sanitize_title( $method->id ); ?>"><?php echo wp_kses_post( wc_cart_totals_shipping_method_label( $method ) ); ?></label>
+                                               </li>
+                                       <?php endforeach; ?>
+                               </ul>
+
+                       <?php endif; ?>
+
+               <?php elseif ( ! WC()->customer->get_shipping_state() || ! WC()->customer->get_shipping_postcode() ) : ?>
+
+                       <?php if ( is_cart() && get_option( 'woocommerce_enable_shipping_calc' ) === 'yes' ) : ?>
+
+                               <p><?php _e( 'Please use the shipping calculator to see available shipping methods.', 'woocommerce' ); ?></p>
+
+                       <?php elseif ( is_cart() ) : ?>
+
+                               <p><?php _e( 'Please continue to the checkout and enter your full address to see if there are any available shipping methods.', 'woocommerce' ); ?></p>
+
+                       <?php else : ?>
+
+                               <p><?php _e( 'Please fill in your details to see available shipping methods.', 'woocommerce' ); ?></p>
+
+                       <?php endif; ?>
+
+               <?php else : ?>
+
+                       <?php if ( is_cart() ) : ?>
+
+                               <?php echo apply_filters( 'woocommerce_cart_no_shipping_available_html',
+                                       '<div class="woocommerce-info"><p>' . __( 'There doesn&lsquo;t seem to be any available shipping methods. Please double check your address, or contact us if you need any help.', 'woocommerce' ) . '</p></div>'
+                               ); ?>
+
+                       <?php else : ?>
+
+                               <?php echo apply_filters( 'woocommerce_no_shipping_available_html',
+                                       '<p>' . __( 'There doesn&lsquo;t seem to be any available shipping methods. Please double check your address, or contact us if you need any help.', 'woocommerce' ) . '</p>'
+                               ); ?>
+
+                       <?php endif; ?>
+
+               <?php endif; ?>
+
+               <?php if ( $show_package_details ) : ?>
+                       <?php
+                               foreach ( $package['contents'] as $item_id => $values ) {
+                                       if ( $values['data']->needs_shipping() ) {
+                                               $product_names[] = $values['data']->get_title() . ' &times;' . $values['quantity'];
+                                       }
+                               }
+
+                               echo '<p class="woocommerce-shipping-contents"><small>' . __( 'Shipping', 'woocommerce' ) . ': ' . implode( ', ', $product_names ) . '</small></p>';
+                       ?>
+               <?php endif; ?>
+       </td>
+</tr>
diff --git a/woocommerce/cart/cart-totals.php b/woocommerce/cart/cart-totals.php
new file mode 100644 (file)
index 0000000..f534a2f
--- /dev/null
@@ -0,0 +1,97 @@
+<?php
+/**
+ * Cart totals
+ *
+ * @author             WooThemes
+ * @package    WooCommerce/Templates
+ * @version     2.1.0
+ */
+
+if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
+?>
+<div class="cart_totals <?php if ( WC()->customer->has_calculated_shipping() ) echo 'calculated_shipping'; ?>">
+
+       <?php do_action( 'woocommerce_before_cart_totals' ); ?>
+
+       <h2><?php _e( 'Cart Totals', 'woocommerce' ); ?></h2>
+
+       <table cellspacing="0">
+
+               <tr class="cart-subtotal">
+                       <th><?php _e( 'Cart Subtotal', 'woocommerce' ); ?></th>
+                       <td><?php wc_cart_totals_subtotal_html(); ?></td>
+               </tr>
+
+               <?php foreach ( WC()->cart->get_coupons( 'cart' ) as $code => $coupon ) : ?>
+                       <tr class="cart-discount coupon-<?php echo esc_attr( $code ); ?>">
+                               <th><?php wc_cart_totals_coupon_label( $coupon ); ?></th>
+                               <td><?php wc_cart_totals_coupon_html( $coupon ); ?></td>
+                       </tr>
+               <?php endforeach; ?>
+
+               <?php if ( WC()->cart->needs_shipping() && WC()->cart->show_shipping() ) : ?>
+
+                       <?php do_action( 'woocommerce_cart_totals_before_shipping' ); ?>
+
+                       <?php wc_cart_totals_shipping_html(); ?>
+
+                       <?php do_action( 'woocommerce_cart_totals_after_shipping' ); ?>
+
+               <?php endif; ?>
+
+               <?php foreach ( WC()->cart->get_fees() as $fee ) : ?>
+                       <tr class="fee">
+                               <th><?php echo esc_html( $fee->name ); ?></th>
+                               <td><?php wc_cart_totals_fee_html( $fee ); ?></td>
+                       </tr>
+               <?php endforeach; ?>
+
+               <?php if ( WC()->cart->tax_display_cart == 'excl' ) : ?>
+                       <?php if ( get_option( 'woocommerce_tax_total_display' ) == 'itemized' ) : ?>
+                               <?php foreach ( WC()->cart->get_tax_totals() as $code => $tax ) : ?>
+                                       <tr class="tax-rate tax-rate-<?php echo sanitize_title( $code ); ?>">
+                                               <th><?php echo esc_html( $tax->label ); ?></th>
+                                               <td><?php echo wp_kses_post( $tax->formatted_amount ); ?></td>
+                                       </tr>
+                               <?php endforeach; ?>
+                       <?php else : ?>
+                               <tr class="tax-total">
+                                       <th><?php echo esc_html( WC()->countries->tax_or_vat() ); ?></th>
+                                       <td><?php echo wc_cart_totals_taxes_total_html(); ?></td>
+                               </tr>
+                       <?php endif; ?>
+               <?php endif; ?>
+
+               <?php foreach ( WC()->cart->get_coupons( 'order' ) as $code => $coupon ) : ?>
+                       <tr class="order-discount coupon-<?php echo esc_attr( $code ); ?>">
+                               <th><?php wc_cart_totals_coupon_label( $coupon ); ?></th>
+                               <td><?php wc_cart_totals_coupon_html( $coupon ); ?></td>
+                       </tr>
+               <?php endforeach; ?>
+
+               <?php do_action( 'woocommerce_cart_totals_before_order_total' ); ?>
+
+               <tr class="order-total">
+                       <th><?php _e( 'Order Total', 'woocommerce' ); ?></th>
+                       <td><?php wc_cart_totals_order_total_html(); ?></td>
+               </tr>
+
+               <?php do_action( 'woocommerce_cart_totals_after_order_total' ); ?>
+
+       </table>
+
+       <?php if ( WC()->cart->get_cart_tax() ) : ?>
+               <p><small><?php
+
+                       $estimated_text = WC()->customer->is_customer_outside_base() && ! WC()->customer->has_calculated_shipping()
+                               ? sprintf( ' ' . __( ' (taxes estimated for %s)', 'woocommerce' ), WC()->countries->estimated_for_prefix() . __( WC()->countries->countries[ WC()->countries->get_base_country() ], 'woocommerce' ) )
+                               : '';
+
+                       printf( __( 'Note: Shipping and taxes are estimated%s and will be updated during checkout based on your billing and shipping information.', 'woocommerce' ), $estimated_text );
+
+               ?></small></p>
+       <?php endif; ?>
+
+       <?php do_action( 'woocommerce_after_cart_totals' ); ?>
+
+</div>
\ No newline at end of file
diff --git a/woocommerce/cart/cart.php b/woocommerce/cart/cart.php
new file mode 100644 (file)
index 0000000..c3558f9
--- /dev/null
@@ -0,0 +1,150 @@
+<?php
+/**
+ * Cart Page
+ *
+ * @author             WooThemes
+ * @package    WooCommerce/Templates
+ * @version     2.1.0
+ */
+
+if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
+
+wc_print_notices();
+
+do_action( 'woocommerce_before_cart' ); ?>
+
+<form action="<?php echo esc_url( WC()->cart->get_cart_url() ); ?>" method="post">
+
+<?php do_action( 'woocommerce_before_cart_table' ); ?>
+
+<table class="shop_table cart" cellspacing="0">
+       <thead>
+               <tr>
+                       <th class="product-remove">&nbsp;</th>
+                       <th class="product-thumbnail">&nbsp;</th>
+                       <th class="product-name"><?php _e( 'Product', 'woocommerce' ); ?></th>
+                       <th class="product-price"><?php _e( 'Price', 'woocommerce' ); ?></th>
+                       <th class="product-quantity"><?php _e( 'Quantity', 'woocommerce' ); ?></th>
+                       <th class="product-subtotal"><?php _e( 'Total', 'woocommerce' ); ?></th>
+               </tr>
+       </thead>
+       <tbody>
+               <?php do_action( 'woocommerce_before_cart_contents' ); ?>
+
+               <?php
+               foreach ( WC()->cart->get_cart() as $cart_item_key => $cart_item ) {
+                       $_product     = apply_filters( 'woocommerce_cart_item_product', $cart_item['data'], $cart_item, $cart_item_key );
+                       $product_id   = apply_filters( 'woocommerce_cart_item_product_id', $cart_item['product_id'], $cart_item, $cart_item_key );
+
+                       if ( $_product && $_product->exists() && $cart_item['quantity'] > 0 && apply_filters( 'woocommerce_cart_item_visible', true, $cart_item, $cart_item_key ) ) {
+                               ?>
+                               <tr class="<?php echo esc_attr( apply_filters( 'woocommerce_cart_item_class', 'cart_item', $cart_item, $cart_item_key ) ); ?>">
+
+                                       <td class="product-remove">
+                                               <?php
+                                                       echo apply_filters( 'woocommerce_cart_item_remove_link', sprintf( '<a href="%s" class="remove" title="%s">&times;</a>', esc_url( WC()->cart->get_remove_url( $cart_item_key ) ), __( 'Remove this item', 'woocommerce' ) ), $cart_item_key );
+                                               ?>
+                                       </td>
+
+                                       <td class="product-thumbnail">
+                                               <?php
+                                                       $thumbnail = apply_filters( 'woocommerce_cart_item_thumbnail', $_product->get_image(), $cart_item, $cart_item_key );
+
+                                                       if ( ! $_product->is_visible() )
+                                                               echo $thumbnail;
+                                                       else
+                                                               printf( '<a href="%s">%s</a>', $_product->get_permalink(), $thumbnail );
+                                               ?>
+                                       </td>
+
+                                       <td class="product-name">
+                                               <?php
+                                                       if ( ! $_product->is_visible() )
+                                                               echo apply_filters( 'woocommerce_cart_item_name', $_product->get_title(), $cart_item, $cart_item_key );
+                                                       else
+                                                               echo apply_filters( 'woocommerce_cart_item_name', sprintf( '<a href="%s">%s</a>', $_product->get_permalink(), $_product->get_title() ), $cart_item, $cart_item_key );
+
+                                                       // Meta data
+                                                       echo WC()->cart->get_item_data( $cart_item );
+
+                                               // Backorder notification
+                                               if ( $_product->backorders_require_notification() && $_product->is_on_backorder( $cart_item['quantity'] ) )
+                                                       echo '<p class="backorder_notification">' . __( 'Available on backorder', 'woocommerce' ) . '</p>';
+                                               ?>
+                                       </td>
+
+                                       <td class="product-price">
+                                               <?php
+                                                       echo apply_filters( 'woocommerce_cart_item_price', WC()->cart->get_product_price( $_product ), $cart_item, $cart_item_key );
+                                               ?>
+                                       </td>
+
+                                       <td class="product-quantity">
+                                               <?php
+                                                       if ( $_product->is_sold_individually() ) {
+                                                               $product_quantity = sprintf( '1 <input type="hidden" name="cart[%s][qty]" value="1" />', $cart_item_key );
+                                                       } else {
+                                                               $product_quantity = woocommerce_quantity_input( array(
+                                                                       'input_name'  => "cart[{$cart_item_key}][qty]",
+                                                                       'input_value' => $cart_item['quantity'],
+                                                                       'max_value'   => $_product->backorders_allowed() ? '' : $_product->get_stock_quantity(),
+                                                                       'min_value'   => '0'
+                                                               ), $_product, false );
+                                                       }
+
+                                                       echo apply_filters( 'woocommerce_cart_item_quantity', $product_quantity, $cart_item_key );
+                                               ?>
+                                       </td>
+
+                                       <td class="product-subtotal">
+                                               <?php
+                                                       echo apply_filters( 'woocommerce_cart_item_subtotal', WC()->cart->get_product_subtotal( $_product, $cart_item['quantity'] ), $cart_item, $cart_item_key );
+                                               ?>
+                                       </td>
+                               </tr>
+                               <?php
+                       }
+               }
+
+               do_action( 'woocommerce_cart_contents' );
+               ?>
+               <tr>
+                       <td colspan="6" class="actions">
+
+                               <?php if ( WC()->cart->coupons_enabled() ) { ?>
+                                       <div class="coupon">
+
+                                               <label for="coupon_code"><?php _e( 'Coupon', 'woocommerce' ); ?>:</label> <input type="text" name="coupon_code" class="input-text" id="coupon_code" value="" placeholder="<?php _e( 'Coupon code', 'woocommerce' ); ?>" /> <input type="submit" class="button" name="apply_coupon" value="<?php _e( 'Apply Coupon', 'woocommerce' ); ?>" />
+
+                                               <?php do_action('woocommerce_cart_coupon'); ?>
+
+                                       </div>
+                               <?php } ?>
+
+                               <input type="submit" class="button" name="update_cart" value="<?php _e( 'Update Cart', 'woocommerce' ); ?>" /> <input type="submit" class="checkout-button button alt wc-forward" name="proceed" value="<?php _e( 'Proceed to Checkout', 'woocommerce' ); ?>" />
+
+                               <?php do_action( 'woocommerce_proceed_to_checkout' ); ?>
+
+                               <?php wp_nonce_field( 'woocommerce-cart' ); ?>
+                       </td>
+               </tr>
+
+               <?php do_action( 'woocommerce_after_cart_contents' ); ?>
+       </tbody>
+</table>
+
+<?php do_action( 'woocommerce_after_cart_table' ); ?>
+
+</form>
+
+<div class="cart-collaterals">
+
+       <?php do_action( 'woocommerce_cart_collaterals' ); ?>
+
+       <?php woocommerce_cart_totals(); ?>
+
+       <?php woocommerce_shipping_calculator(); ?>
+
+</div>
+
+<?php do_action( 'woocommerce_after_cart' ); ?>
diff --git a/woocommerce/cart/cross-sells.php b/woocommerce/cart/cross-sells.php
new file mode 100644 (file)
index 0000000..7a9b600
--- /dev/null
@@ -0,0 +1,54 @@
+<?php
+/**
+ * Cross-sells
+ *
+ * @author             WooThemes
+ * @package    WooCommerce/Templates
+ * @version     1.6.4
+ */
+
+if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
+
+global $product, $woocommerce_loop;
+
+$crosssells = WC()->cart->get_cross_sells();
+
+if ( sizeof( $crosssells ) == 0 ) return;
+
+$meta_query = WC()->query->get_meta_query();
+
+$args = array(
+       'post_type'           => 'product',
+       'ignore_sticky_posts' => 1,
+       'no_found_rows'       => 1,
+       'posts_per_page'      => apply_filters( 'woocommerce_cross_sells_total', $posts_per_page ),
+       'orderby'             => $orderby,
+       'post__in'            => $crosssells,
+       'meta_query'          => $meta_query
+);
+
+$products = new WP_Query( $args );
+
+$woocommerce_loop['columns'] = apply_filters( 'woocommerce_cross_sells_columns', $columns );
+
+if ( $products->have_posts() ) : ?>
+
+       <div class="cross-sells">
+
+               <h2><?php _e( 'You may be interested in&hellip;', 'woocommerce' ) ?></h2>
+
+               <?php woocommerce_product_loop_start(); ?>
+
+                       <?php while ( $products->have_posts() ) : $products->the_post(); ?>
+
+                               <?php wc_get_template_part( 'content', 'product' ); ?>
+
+                       <?php endwhile; // end of the loop. ?>
+
+               <?php woocommerce_product_loop_end(); ?>
+
+       </div>
+
+<?php endif;
+
+wp_reset_query();
\ No newline at end of file
diff --git a/woocommerce/cart/mini-cart.php b/woocommerce/cart/mini-cart.php
new file mode 100644 (file)
index 0000000..23fad31
--- /dev/null
@@ -0,0 +1,71 @@
+<?php
+/**
+ * Mini-cart
+ *
+ * Contains the markup for the mini-cart, used by the cart widget
+ *
+ * @author             WooThemes
+ * @package    WooCommerce/Templates
+ * @version     2.1.0
+ */
+
+if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
+?>
+
+<?php do_action( 'woocommerce_before_mini_cart' ); ?>
+
+<ul class="cart_list product_list_widget <?php echo $args['list_class']; ?>">
+
+       <?php if ( sizeof( WC()->cart->get_cart() ) > 0 ) : ?>
+
+               <?php
+                       foreach ( WC()->cart->get_cart() as $cart_item_key => $cart_item ) {
+                               $_product     = apply_filters( 'woocommerce_cart_item_product', $cart_item['data'], $cart_item, $cart_item_key );
+                               $product_id   = apply_filters( 'woocommerce_cart_item_product_id', $cart_item['product_id'], $cart_item, $cart_item_key );
+
+                               if ( $_product && $_product->exists() && $cart_item['quantity'] > 0 && apply_filters( 'woocommerce_widget_cart_item_visible', true, $cart_item, $cart_item_key ) ) {
+
+                                       $product_name  = apply_filters( 'woocommerce_cart_item_name', $_product->get_title(), $cart_item, $cart_item_key );
+                                       $thumbnail     = apply_filters( 'woocommerce_cart_item_thumbnail', $_product->get_image(), $cart_item, $cart_item_key );
+                                       $product_price = apply_filters( 'woocommerce_cart_item_price', WC()->cart->get_product_price( $_product ), $cart_item, $cart_item_key );
+
+                                       ?>
+                                       <li>
+                                       <?php if ( ! $_product->is_visible() ) { ?>
+                                               <?php echo str_replace( array( 'http:', 'https:' ), '', $thumbnail ) . $product_name; ?>
+                                       <?php } else { ?>
+                                               <a href="<?php echo get_permalink( $product_id ); ?>">
+                                                       <?php echo str_replace( array( 'http:', 'https:' ), '', $thumbnail ) . $product_name; ?>
+                                               </a>
+                                       <?php } ?>
+                                               <?php echo WC()->cart->get_item_data( $cart_item ); ?>
+
+                                               <?php echo apply_filters( 'woocommerce_widget_cart_item_quantity', '<span class="quantity">' . sprintf( '%s &times; %s', $cart_item['quantity'], $product_price ) . '</span>', $cart_item, $cart_item_key ); ?>
+                                       </li>
+                                       <?php
+                               }
+                       }
+               ?>
+
+       <?php else : ?>
+
+               <li class="empty"><?php _e( 'No products in the cart.', 'woocommerce' ); ?></li>
+
+       <?php endif; ?>
+
+</ul><!-- end product list -->
+
+<?php if ( sizeof( WC()->cart->get_cart() ) > 0 ) : ?>
+
+       <p class="total"><strong><?php _e( 'Subtotal', 'woocommerce' ); ?>:</strong> <?php echo WC()->cart->get_cart_subtotal(); ?></p>
+
+       <?php do_action( 'woocommerce_widget_shopping_cart_before_buttons' ); ?>
+
+       <p class="buttons">
+               <a href="<?php echo WC()->cart->get_cart_url(); ?>" class="button wc-forward"><?php _e( 'View Cart', 'woocommerce' ); ?></a>
+               <a href="<?php echo WC()->cart->get_checkout_url(); ?>" class="button checkout wc-forward"><?php _e( 'Checkout', 'woocommerce' ); ?></a>
+       </p>
+
+<?php endif; ?>
+
+<?php do_action( 'woocommerce_after_mini_cart' ); ?>
diff --git a/woocommerce/cart/shipping-calculator.php b/woocommerce/cart/shipping-calculator.php
new file mode 100644 (file)
index 0000000..89c2c17
--- /dev/null
@@ -0,0 +1,89 @@
+<?php
+/**
+ * Shipping Calculator
+ *
+ * @author             WooThemes
+ * @package    WooCommerce/Templates
+ * @version     2.0.8
+ */
+
+if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
+
+if ( get_option( 'woocommerce_enable_shipping_calc' ) === 'no' || ! WC()->cart->needs_shipping() )
+       return;
+?>
+
+<?php do_action( 'woocommerce_before_shipping_calculator' ); ?>
+
+<form class="shipping_calculator" action="<?php echo esc_url( WC()->cart->get_cart_url() ); ?>" method="post">
+
+       <h2><a href="#" class="shipping-calculator-button"><?php _e( 'Calculate Shipping', 'woocommerce' ); ?></a></h2>
+
+       <section class="shipping-calculator-form">
+
+               <p class="form-row form-row-wide">
+                       <select name="calc_shipping_country" id="calc_shipping_country" class="country_to_state" rel="calc_shipping_state">
+                               <option value=""><?php _e( 'Select a country&hellip;', 'woocommerce' ); ?></option>
+                               <?php
+                                       foreach( WC()->countries->get_shipping_countries() as $key => $value )
+                                               echo '<option value="' . esc_attr( $key ) . '"' . selected( WC()->customer->get_shipping_country(), esc_attr( $key ), false ) . '>' . esc_html( $value ) . '</option>';
+                               ?>
+                       </select>
+               </p>
+
+               <p class="form-row form-row-wide">
+                       <?php
+                               $current_cc = WC()->customer->get_shipping_country();
+                               $current_r  = WC()->customer->get_shipping_state();
+                               $states     = WC()->countries->get_states( $current_cc );
+
+                               // Hidden Input
+                               if ( is_array( $states ) && empty( $states ) ) {
+
+                                       ?><input type="hidden" name="calc_shipping_state" id="calc_shipping_state" placeholder="<?php _e( 'State / county', 'woocommerce' ); ?>" /><?php
+
+                               // Dropdown Input
+                               } elseif ( is_array( $states ) ) {
+
+                                       ?><span>
+                                               <select name="calc_shipping_state" id="calc_shipping_state" placeholder="<?php _e( 'State / county', 'woocommerce' ); ?>">
+                                                       <option value=""><?php _e( 'Select a state&hellip;', 'woocommerce' ); ?></option>
+                                                       <?php
+                                                               foreach ( $states as $ckey => $cvalue )
+                                                                       echo '<option value="' . esc_attr( $ckey ) . '" ' . selected( $current_r, $ckey, false ) . '>' . __( esc_html( $cvalue ), 'woocommerce' ) .'</option>';
+                                                       ?>
+                                               </select>
+                                       </span><?php
+
+                               // Standard Input
+                               } else {
+
+                                       ?><input type="text" class="input-text" value="<?php echo esc_attr( $current_r ); ?>" placeholder="<?php _e( 'State / county', 'woocommerce' ); ?>" name="calc_shipping_state" id="calc_shipping_state" /><?php
+
+                               }
+                       ?>
+               </p>
+
+               <?php if ( apply_filters( 'woocommerce_shipping_calculator_enable_city', false ) ) : ?>
+
+                       <p class="form-row form-row-wide">
+                               <input type="text" class="input-text" value="<?php echo esc_attr( WC()->customer->get_shipping_city() ); ?>" placeholder="<?php _e( 'City', 'woocommerce' ); ?>" name="calc_shipping_city" id="calc_shipping_city" />
+                       </p>
+
+               <?php endif; ?>
+
+               <?php if ( apply_filters( 'woocommerce_shipping_calculator_enable_postcode', true ) ) : ?>
+
+                       <p class="form-row form-row-wide">
+                               <input type="text" class="input-text" value="<?php echo esc_attr( WC()->customer->get_shipping_postcode() ); ?>" placeholder="<?php _e( 'Postcode / Zip', 'woocommerce' ); ?>" name="calc_shipping_postcode" id="calc_shipping_postcode" />
+                       </p>
+
+               <?php endif; ?>
+
+               <p><button type="submit" name="calc_shipping" value="1" class="button"><?php _e( 'Update Totals', 'woocommerce' ); ?></button></p>
+
+               <?php wp_nonce_field( 'woocommerce-cart' ); ?>
+       </section>
+</form>
+
+<?php do_action( 'woocommerce_after_shipping_calculator' ); ?>
\ No newline at end of file
diff --git a/woocommerce/checkout/cart-errors.php b/woocommerce/checkout/cart-errors.php
new file mode 100644 (file)
index 0000000..99dc6a9
--- /dev/null
@@ -0,0 +1,20 @@
+<?php
+/**
+ * Cart errors page
+ *
+ * @author             WooThemes
+ * @package    WooCommerce/Templates
+ * @version     1.6.4
+ */
+
+if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
+
+?>
+
+<?php wc_print_notices(); ?>
+
+<p><?php _e( 'There are some issues with the items in your cart (shown above). Please go back to the cart page and resolve these issues before checking out.', 'woocommerce' ) ?></p>
+
+<?php do_action( 'woocommerce_cart_has_errors' ); ?>
+
+<p><a class="button wc-backward" href="<?php echo get_permalink(wc_get_page_id( 'cart' ) ); ?>"><?php _e( 'Return To Cart', 'woocommerce' ) ?></a></p>
\ No newline at end of file
diff --git a/woocommerce/checkout/form-billing.php b/woocommerce/checkout/form-billing.php
new file mode 100644 (file)
index 0000000..0def3c1
--- /dev/null
@@ -0,0 +1,66 @@
+<?php
+/**
+ * Checkout billing information form
+ *
+ * @author             WooThemes
+ * @package    WooCommerce/Templates
+ * @version     2.1.2
+ */
+
+if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
+?>
+<div class="woocommerce-billing-fields">
+       <?php if ( WC()->cart->ship_to_billing_address_only() && WC()->cart->needs_shipping() ) : ?>
+
+               <h3><?php _e( 'Billing &amp; Shipping', 'woocommerce' ); ?></h3>
+
+       <?php else : ?>
+
+               <h3><?php _e( 'Billing Details', 'woocommerce' ); ?></h3>
+
+       <?php endif; ?>
+
+       <?php do_action( 'woocommerce_before_checkout_billing_form', $checkout ); ?>
+
+       <?php foreach ( $checkout->checkout_fields['billing'] as $key => $field ) : ?>
+
+               <?php woocommerce_form_field( $key, $field, $checkout->get_value( $key ) ); ?>
+
+       <?php endforeach; ?>
+
+       <?php do_action('woocommerce_after_checkout_billing_form', $checkout ); ?>
+
+       <?php if ( ! is_user_logged_in() && $checkout->enable_signup ) : ?>
+
+               <?php if ( $checkout->enable_guest_checkout ) : ?>
+
+                       <p class="form-row form-row-wide create-account">
+                               <input class="input-checkbox" id="createaccount" <?php checked( ( true === $checkout->get_value( 'createaccount' ) || ( true === apply_filters( 'woocommerce_create_account_default_checked', false ) ) ), true) ?> type="checkbox" name="createaccount" value="1" /> <label for="createaccount" class="checkbox"><?php _e( 'Create an account?', 'woocommerce' ); ?></label>
+                       </p>
+
+               <?php endif; ?>
+
+               <?php do_action( 'woocommerce_before_checkout_registration_form', $checkout ); ?>
+
+               <?php if ( ! empty( $checkout->checkout_fields['account'] ) ) : ?>
+
+                       <div class="create-account">
+
+                               <p><?php _e( 'Create an account by entering the information below. If you are a returning customer please login at the top of the page.', 'woocommerce' ); ?></p>
+
+                               <?php foreach ( $checkout->checkout_fields['account'] as $key => $field ) : ?>
+
+                                       <?php woocommerce_form_field( $key, $field, $checkout->get_value( $key ) ); ?>
+
+                               <?php endforeach; ?>
+
+                               <div class="clear"></div>
+
+                       </div>
+
+               <?php endif; ?>
+
+               <?php do_action( 'woocommerce_after_checkout_registration_form', $checkout ); ?>
+
+       <?php endif; ?>
+</div>
\ No newline at end of file
diff --git a/woocommerce/checkout/form-checkout.php b/woocommerce/checkout/form-checkout.php
new file mode 100644 (file)
index 0000000..0331d2e
--- /dev/null
@@ -0,0 +1,57 @@
+<?php
+/**
+ * Checkout Form
+ *
+ * @author             WooThemes
+ * @package    WooCommerce/Templates
+ * @version     2.0.0
+ */
+
+if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
+
+wc_print_notices();
+
+do_action( 'woocommerce_before_checkout_form', $checkout );
+
+// If checkout registration is disabled and not logged in, the user cannot checkout
+if ( ! $checkout->enable_signup && ! $checkout->enable_guest_checkout && ! is_user_logged_in() ) {
+       echo apply_filters( 'woocommerce_checkout_must_be_logged_in_message', __( 'You must be logged in to checkout.', 'woocommerce' ) );
+       return;
+}
+
+// filter hook for include new pages inside the payment method
+$get_checkout_url = apply_filters( 'woocommerce_get_checkout_url', WC()->cart->get_checkout_url() ); ?>
+
+<form name="checkout" method="post" class="checkout" action="<?php echo esc_url( $get_checkout_url ); ?>" enctype="multipart/form-data">
+
+       <?php if ( sizeof( $checkout->checkout_fields ) > 0 ) : ?>
+
+               <?php do_action( 'woocommerce_checkout_before_customer_details' ); ?>
+
+               <div class="col2-set" id="customer_details">
+
+                       <div class="col-1">
+
+                               <?php do_action( 'woocommerce_checkout_billing' ); ?>
+
+                       </div>
+
+                       <div class="col-2">
+
+                               <?php do_action( 'woocommerce_checkout_shipping' ); ?>
+
+                       </div>
+
+               </div>
+
+               <?php do_action( 'woocommerce_checkout_after_customer_details' ); ?>
+
+               <h3 id="order_review_heading"><?php _e( 'Your order', 'woocommerce' ); ?></h3>
+
+       <?php endif; ?>
+
+       <?php do_action( 'woocommerce_checkout_order_review' ); ?>
+
+</form>
+
+<?php do_action( 'woocommerce_after_checkout_form', $checkout ); ?>
\ No newline at end of file
diff --git a/woocommerce/checkout/form-coupon.php b/woocommerce/checkout/form-coupon.php
new file mode 100644 (file)
index 0000000..05fe233
--- /dev/null
@@ -0,0 +1,31 @@
+<?php
+/**
+ * Checkout coupon form
+ *
+ * @author             WooThemes
+ * @package    WooCommerce/Templates
+ * @version     2.2
+ */
+
+if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
+
+if ( ! WC()->cart->coupons_enabled() ) {
+       return;
+}
+
+$info_message = apply_filters( 'woocommerce_checkout_coupon_message', __( 'Have a coupon?', 'woocommerce' ) . ' <a href="#" class="showcoupon">' . __( 'Click here to enter your code', 'woocommerce' ) . '</a>' );
+wc_print_notice( $info_message, 'notice' );
+?>
+
+<form class="checkout_coupon" method="post" style="display:none">
+
+       <p class="form-row form-row-first">
+               <input type="text" name="coupon_code" class="input-text" placeholder="<?php _e( 'Coupon code', 'woocommerce' ); ?>" id="coupon_code" value="" />
+       </p>
+
+       <p class="form-row form-row-last">
+               <input type="submit" class="button" name="apply_coupon" value="<?php _e( 'Apply Coupon', 'woocommerce' ); ?>" />
+       </p>
+
+       <div class="clear"></div>
+</form>
\ No newline at end of file
diff --git a/woocommerce/checkout/form-login.php b/woocommerce/checkout/form-login.php
new file mode 100644 (file)
index 0000000..70ce615
--- /dev/null
@@ -0,0 +1,27 @@
+<?php
+/**
+ * Checkout login form
+ *
+ * @author             WooThemes
+ * @package    WooCommerce/Templates
+ * @version     2.0.0
+ */
+
+if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
+
+if ( is_user_logged_in() || 'no' === get_option( 'woocommerce_enable_checkout_login_reminder' ) ) return;
+
+$info_message  = apply_filters( 'woocommerce_checkout_login_message', __( 'Returning customer?', 'woocommerce' ) );
+$info_message .= ' <a href="#" class="showlogin">' . __( 'Click here to login', 'woocommerce' ) . '</a>';
+wc_print_notice( $info_message, 'notice' );
+?>
+
+<?php
+       woocommerce_login_form(
+               array(
+                       'message'  => __( 'If you have shopped with us before, please enter your details in the boxes below. If you are a new customer please proceed to the Billing &amp; Shipping section.', 'woocommerce' ),
+                       'redirect' => get_permalink( wc_get_page_id( 'checkout' ) ),
+                       'hidden'   => true
+               )
+       );
+?>
\ No newline at end of file
diff --git a/woocommerce/checkout/form-pay.php b/woocommerce/checkout/form-pay.php
new file mode 100644 (file)
index 0000000..db495e7
--- /dev/null
@@ -0,0 +1,96 @@
+<?php
+/**
+ * Pay for order form
+ *
+ * @author             WooThemes
+ * @package    WooCommerce/Templates
+ * @version     1.6.4
+ */
+
+if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
+?>
+<form id="order_review" method="post">
+
+       <table class="shop_table">
+               <thead>
+                       <tr>
+                               <th class="product-name"><?php _e( 'Product', 'woocommerce' ); ?></th>
+                               <th class="product-quantity"><?php _e( 'Qty', 'woocommerce' ); ?></th>
+                               <th class="product-total"><?php _e( 'Totals', 'woocommerce' ); ?></th>
+                       </tr>
+               </thead>
+               <tbody>
+                       <?php
+                       if ( sizeof( $order->get_items() ) > 0 ) :
+                               foreach ( $order->get_items() as $item ) :
+                                       echo '
+                                               <tr>
+                                                       <td class="product-name">' . $item['name'].'</td>
+                                                       <td class="product-quantity">' . $item['qty'].'</td>
+                                                       <td class="product-subtotal">' . $order->get_formatted_line_subtotal( $item ) . '</td>
+                                               </tr>';
+                               endforeach;
+                       endif;
+                       ?>
+               </tbody>
+               <tfoot>
+               <?php
+                       if ( $totals = $order->get_order_item_totals() ) foreach ( $totals as $total ) :
+                               ?>
+                               <tr>
+                                       <th scope="row" colspan="2"><?php echo $total['label']; ?></th>
+                                       <td class="product-total"><?php echo $total['value']; ?></td>
+                               </tr>
+                               <?php
+                       endforeach;
+               ?>
+               </tfoot>
+       </table>
+
+       <div id="payment">
+               <?php if ( $order->needs_payment() ) : ?>
+               <h3><?php _e( 'Payment', 'woocommerce' ); ?></h3>
+               <ul class="payment_methods methods">
+                       <?php
+                               if ( $available_gateways = WC()->payment_gateways->get_available_payment_gateways() ) {
+                                       // Chosen Method
+                                       if ( sizeof( $available_gateways ) )
+                                               current( $available_gateways )->set_current();
+
+                                       foreach ( $available_gateways as $gateway ) {
+                                               ?>
+                                               <li class="payment_method_<?php echo $gateway->id; ?>">
+                                                       <input id="payment_method_<?php echo $gateway->id; ?>" type="radio" class="input-radio" name="payment_method" value="<?php echo esc_attr( $gateway->id ); ?>" <?php checked( $gateway->chosen, true ); ?> data-order_button_text="<?php echo esc_attr( $gateway->order_button_text ); ?>" />
+                                                       <label for="payment_method_<?php echo $gateway->id; ?>"><?php echo $gateway->get_title(); ?> <?php echo $gateway->get_icon(); ?></label>
+                                                       <?php
+                                                               if ( $gateway->has_fields() || $gateway->get_description() ) {
+                                                                       echo '<div class="payment_box payment_method_' . $gateway->id . '" style="display:none;">';
+                                                                       $gateway->payment_fields();
+                                                                       echo '</div>';
+                                                               }
+                                                       ?>
+                                               </li>
+                                               <?php
+                                       }
+                               } else {
+
+                                       echo '<p>' . __( 'Sorry, it seems that there are no available payment methods for your location. Please contact us if you require assistance or wish to make alternate arrangements.', 'woocommerce' ) . '</p>';
+
+                               }
+                       ?>
+               </ul>
+               <?php endif; ?>
+
+               <div class="form-row">
+                       <?php wp_nonce_field( 'woocommerce-pay' ); ?>
+                       <?php
+                               $pay_order_button_text = apply_filters( 'woocommerce_pay_order_button_text', __( 'Pay for order', 'woocommerce' ) );
+                               
+                               echo apply_filters( 'woocommerce_pay_order_button_html', '<input type="submit" class="button alt" id="place_order" value="' . esc_attr( $pay_order_button_text ) . '" data-value="' . esc_attr( $pay_order_button_text ) . '" />' );
+                       ?>                      
+                       <input type="hidden" name="woocommerce_pay" value="1" />
+               </div>
+
+       </div>
+
+</form>
diff --git a/woocommerce/checkout/form-shipping.php b/woocommerce/checkout/form-shipping.php
new file mode 100644 (file)
index 0000000..0e67ead
--- /dev/null
@@ -0,0 +1,68 @@
+<?php
+/**
+ * Checkout shipping information form
+ *
+ * @author             WooThemes
+ * @package    WooCommerce/Templates
+ * @version     2.2.0
+ */
+
+if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
+?>
+<div class="woocommerce-shipping-fields">
+       <?php if ( WC()->cart->needs_shipping_address() === true ) : ?>
+
+               <?php
+                       if ( empty( $_POST ) ) {
+
+                               $ship_to_different_address = get_option( 'woocommerce_ship_to_destination' ) === 'shipping' ? 1 : 0;
+                               $ship_to_different_address = apply_filters( 'woocommerce_ship_to_different_address_checked', $ship_to_different_address );
+
+                       } else {
+
+                               $ship_to_different_address = $checkout->get_value( 'ship_to_different_address' );
+
+                       }
+               ?>
+
+               <h3 id="ship-to-different-address">
+                       <label for="ship-to-different-address-checkbox" class="checkbox"><?php _e( 'Ship to a different address?', 'woocommerce' ); ?></label>
+                       <input id="ship-to-different-address-checkbox" class="input-checkbox" <?php checked( $ship_to_different_address, 1 ); ?> type="checkbox" name="ship_to_different_address" value="1" />
+               </h3>
+
+               <div class="shipping_address">
+
+                       <?php do_action( 'woocommerce_before_checkout_shipping_form', $checkout ); ?>
+
+                       <?php foreach ( $checkout->checkout_fields['shipping'] as $key => $field ) : ?>
+
+                               <?php woocommerce_form_field( $key, $field, $checkout->get_value( $key ) ); ?>
+
+                       <?php endforeach; ?>
+
+                       <?php do_action( 'woocommerce_after_checkout_shipping_form', $checkout ); ?>
+
+               </div>
+
+       <?php endif; ?>
+
+       <?php do_action( 'woocommerce_before_order_notes', $checkout ); ?>
+
+       <?php if ( apply_filters( 'woocommerce_enable_order_notes_field', get_option( 'woocommerce_enable_order_comments', 'yes' ) === 'yes' ) ) : ?>
+
+               <?php if ( ! WC()->cart->needs_shipping() || WC()->cart->ship_to_billing_address_only() ) : ?>
+
+                       <h3><?php _e( 'Additional Information', 'woocommerce' ); ?></h3>
+
+               <?php endif; ?>
+
+               <?php foreach ( $checkout->checkout_fields['order'] as $key => $field ) : ?>
+
+                       <?php woocommerce_form_field( $key, $field, $checkout->get_value( $key ) ); ?>
+
+               <?php endforeach; ?>
+
+       <?php endif; ?>
+
+       <?php do_action( 'woocommerce_after_order_notes', $checkout ); ?>
+</div>
diff --git a/woocommerce/checkout/review-order.php b/woocommerce/checkout/review-order.php
new file mode 100644 (file)
index 0000000..37f8b98
--- /dev/null
@@ -0,0 +1,194 @@
+<?php
+/**
+ * Review order form
+ *
+ * @author             WooThemes
+ * @package    WooCommerce/Templates
+ * @version     2.1.8
+ */
+
+if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
+?>
+
+<?php if ( ! $is_ajax ) : ?><div id="order_review"><?php endif; ?>
+
+       <table class="shop_table">
+               <thead>
+                       <tr>
+                               <th class="product-name"><?php _e( 'Product', 'woocommerce' ); ?></th>
+                               <th class="product-total"><?php _e( 'Total', 'woocommerce' ); ?></th>
+                       </tr>
+               </thead>
+               <tbody>
+                       <?php
+                               do_action( 'woocommerce_review_order_before_cart_contents' );
+
+                               foreach ( WC()->cart->get_cart() as $cart_item_key => $cart_item ) {
+                                       $_product     = apply_filters( 'woocommerce_cart_item_product', $cart_item['data'], $cart_item, $cart_item_key );
+
+                                       if ( $_product && $_product->exists() && $cart_item['quantity'] > 0 && apply_filters( 'woocommerce_checkout_cart_item_visible', true, $cart_item, $cart_item_key ) ) {
+                                               ?>
+                                               <tr class="<?php echo esc_attr( apply_filters( 'woocommerce_cart_item_class', 'cart_item', $cart_item, $cart_item_key ) ); ?>">
+                                                       <td class="product-name">
+                                                               <?php echo apply_filters( 'woocommerce_cart_item_name', $_product->get_title(), $cart_item, $cart_item_key ); ?>
+                                                               <?php echo apply_filters( 'woocommerce_checkout_cart_item_quantity', ' <strong class="product-quantity">' . sprintf( '&times; %s', $cart_item['quantity'] ) . '</strong>', $cart_item, $cart_item_key ); ?>
+                                                               <?php echo WC()->cart->get_item_data( $cart_item ); ?>
+                                                       </td>
+                                                       <td class="product-total">
+                                                               <?php echo apply_filters( 'woocommerce_cart_item_subtotal', WC()->cart->get_product_subtotal( $_product, $cart_item['quantity'] ), $cart_item, $cart_item_key ); ?>
+                                                       </td>
+                                               </tr>
+                                               <?php
+                                       }
+                               }
+
+                               do_action( 'woocommerce_review_order_after_cart_contents' );
+                       ?>
+               </tbody>
+               <tfoot>
+
+                       <tr class="cart-subtotal">
+                               <th><?php _e( 'Cart Subtotal', 'woocommerce' ); ?></th>
+                               <td><?php wc_cart_totals_subtotal_html(); ?></td>
+                       </tr>
+
+                       <?php foreach ( WC()->cart->get_coupons( 'cart' ) as $code => $coupon ) : ?>
+                               <tr class="cart-discount coupon-<?php echo esc_attr( $code ); ?>">
+                                       <th><?php wc_cart_totals_coupon_label( $coupon ); ?></th>
+                                       <td><?php wc_cart_totals_coupon_html( $coupon ); ?></td>
+                               </tr>
+                       <?php endforeach; ?>
+
+                       <?php if ( WC()->cart->needs_shipping() && WC()->cart->show_shipping() ) : ?>
+
+                               <?php do_action( 'woocommerce_review_order_before_shipping' ); ?>
+
+                               <?php wc_cart_totals_shipping_html(); ?>
+
+                               <?php do_action( 'woocommerce_review_order_after_shipping' ); ?>
+
+                       <?php endif; ?>
+
+                       <?php foreach ( WC()->cart->get_fees() as $fee ) : ?>
+                               <tr class="fee">
+                                       <th><?php echo esc_html( $fee->name ); ?></th>
+                                       <td><?php wc_cart_totals_fee_html( $fee ); ?></td>
+                               </tr>
+                       <?php endforeach; ?>
+
+                       <?php if ( WC()->cart->tax_display_cart === 'excl' ) : ?>
+                               <?php if ( get_option( 'woocommerce_tax_total_display' ) === 'itemized' ) : ?>
+                                       <?php foreach ( WC()->cart->get_tax_totals() as $code => $tax ) : ?>
+                                               <tr class="tax-rate tax-rate-<?php echo sanitize_title( $code ); ?>">
+                                                       <th><?php echo esc_html( $tax->label ); ?></th>
+                                                       <td><?php echo wp_kses_post( $tax->formatted_amount ); ?></td>
+                                               </tr>
+                                       <?php endforeach; ?>
+                               <?php else : ?>
+                                       <tr class="tax-total">
+                                               <th><?php echo esc_html( WC()->countries->tax_or_vat() ); ?></th>
+                                               <td><?php echo wc_price( WC()->cart->get_taxes_total() ); ?></td>
+                                       </tr>
+                               <?php endif; ?>
+                       <?php endif; ?>
+
+                       <?php foreach ( WC()->cart->get_coupons( 'order' ) as $code => $coupon ) : ?>
+                               <tr class="order-discount coupon-<?php echo esc_attr( $code ); ?>">
+                                       <th><?php wc_cart_totals_coupon_label( $coupon ); ?></th>
+                                       <td><?php wc_cart_totals_coupon_html( $coupon ); ?></td>
+                               </tr>
+                       <?php endforeach; ?>
+
+                       <?php do_action( 'woocommerce_review_order_before_order_total' ); ?>
+
+                       <tr class="order-total">
+                               <th><?php _e( 'Order Total', 'woocommerce' ); ?></th>
+                               <td><?php wc_cart_totals_order_total_html(); ?></td>
+                       </tr>
+
+                       <?php do_action( 'woocommerce_review_order_after_order_total' ); ?>
+
+               </tfoot>
+       </table>
+
+       <?php do_action( 'woocommerce_review_order_before_payment' ); ?>
+
+       <div id="payment">
+               <?php if ( WC()->cart->needs_payment() ) : ?>
+               <ul class="payment_methods methods">
+                       <?php
+                               $available_gateways = WC()->payment_gateways->get_available_payment_gateways();
+                               if ( ! empty( $available_gateways ) ) {
+
+                                       // Chosen Method
+                                       if ( isset( WC()->session->chosen_payment_method ) && isset( $available_gateways[ WC()->session->chosen_payment_method ] ) ) {
+                                               $available_gateways[ WC()->session->chosen_payment_method ]->set_current();
+                                       } elseif ( isset( $available_gateways[ get_option( 'woocommerce_default_gateway' ) ] ) ) {
+                                               $available_gateways[ get_option( 'woocommerce_default_gateway' ) ]->set_current();
+                                       } else {
+                                               current( $available_gateways )->set_current();
+                                       }
+
+                                       foreach ( $available_gateways as $gateway ) {
+                                               ?>
+                                               <li class="payment_method_<?php echo $gateway->id; ?>">
+                                                       <input id="payment_method_<?php echo $gateway->id; ?>" type="radio" class="input-radio" name="payment_method" value="<?php echo esc_attr( $gateway->id ); ?>" <?php checked( $gateway->chosen, true ); ?> data-order_button_text="<?php echo esc_attr( $gateway->order_button_text ); ?>" />
+                                                       <label for="payment_method_<?php echo $gateway->id; ?>"><?php echo $gateway->get_title(); ?> <?php echo $gateway->get_icon(); ?></label>
+                                                       <?php
+                                                               if ( $gateway->has_fields() || $gateway->get_description() ) :
+                                                                       echo '<div class="payment_box payment_method_' . $gateway->id . '" ' . ( $gateway->chosen ? '' : 'style="display:none;"' ) . '>';
+                                                                       $gateway->payment_fields();
+                                                                       echo '</div>';
+                                                               endif;
+                                                       ?>
+                                               </li>
+                                               <?php
+                                       }
+                               } else {
+
+                                       if ( ! WC()->customer->get_country() )
+                                               $no_gateways_message = __( 'Please fill in your details above to see available payment methods.', 'woocommerce' );
+                                       else
+                                               $no_gateways_message = __( 'Sorry, it seems that there are no available payment methods for your state. Please contact us if you require assistance or wish to make alternate arrangements.', 'woocommerce' );
+
+                                       echo '<p>' . apply_filters( 'woocommerce_no_available_payment_methods_message', $no_gateways_message ) . '</p>';
+
+                               }
+                       ?>
+               </ul>
+               <?php endif; ?>
+
+               <div class="form-row place-order">
+
+                       <noscript><?php _e( 'Since your browser does not support JavaScript, or it is disabled, please ensure you click the <em>Update Totals</em> button before placing your order. You may be charged more than the amount stated above if you fail to do so.', 'woocommerce' ); ?><br/><input type="submit" class="button alt" name="woocommerce_checkout_update_totals" value="<?php _e( 'Update totals', 'woocommerce' ); ?>" /></noscript>
+
+                       <?php wp_nonce_field( 'woocommerce-process_checkout' ); ?>
+
+                       <?php do_action( 'woocommerce_review_order_before_submit' ); ?>
+
+                       <?php
+                       $order_button_text = apply_filters( 'woocommerce_order_button_text', __( 'Place order', 'woocommerce' ) );
+
+                       echo apply_filters( 'woocommerce_order_button_html', '<input type="submit" class="button alt" name="woocommerce_checkout_place_order" id="place_order" value="' . esc_attr( $order_button_text ) . '" data-value="' . esc_attr( $order_button_text ) . '" />' );
+                       ?>
+
+                       <?php if ( wc_get_page_id( 'terms' ) > 0 && apply_filters( 'woocommerce_checkout_show_terms', true ) ) { 
+                               $terms_is_checked = apply_filters( 'woocommerce_terms_is_checked_default', isset( $_POST['terms'] ) );
+                               ?>
+                               <p class="form-row terms">
+                                       <label for="terms" class="checkbox"><?php printf( __( 'I&rsquo;ve read and accept the <a href="%s" target="_blank">terms &amp; conditions</a>', 'woocommerce' ), esc_url( get_permalink( wc_get_page_id( 'terms' ) ) ) ); ?></label>
+                                       <input type="checkbox" class="input-checkbox" name="terms" <?php checked( $terms_is_checked, true ); ?> id="terms" />
+                               </p>
+                       <?php } ?>
+
+                       <?php do_action( 'woocommerce_review_order_after_submit' ); ?>
+
+               </div>
+
+               <div class="clear"></div>
+
+       </div>
+
+       <?php do_action( 'woocommerce_review_order_after_payment' ); ?>
+
+<?php if ( ! $is_ajax ) : ?></div><?php endif; ?>
\ No newline at end of file
diff --git a/woocommerce/checkout/thankyou.php b/woocommerce/checkout/thankyou.php
new file mode 100644 (file)
index 0000000..669723c
--- /dev/null
@@ -0,0 +1,67 @@
+<?php
+/**
+ * Thankyou page
+ *
+ * @author             WooThemes
+ * @package    WooCommerce/Templates
+ * @version     2.2.0
+ */
+
+if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
+
+if ( $order ) : ?>
+
+       <?php if ( $order->has_status( 'failed' ) ) : ?>
+
+               <p><?php _e( 'Unfortunately your order cannot be processed as the originating bank/merchant has declined your transaction.', 'woocommerce' ); ?></p>
+
+               <p><?php
+                       if ( is_user_logged_in() )
+                               _e( 'Please attempt your purchase again or go to your account page.', 'woocommerce' );
+                       else
+                               _e( 'Please attempt your purchase again.', 'woocommerce' );
+               ?></p>
+
+               <p>
+                       <a href="<?php echo esc_url( $order->get_checkout_payment_url() ); ?>" class="button pay"><?php _e( 'Pay', 'woocommerce' ) ?></a>
+                       <?php if ( is_user_logged_in() ) : ?>
+                       <a href="<?php echo esc_url( get_permalink( wc_get_page_id( 'myaccount' ) ) ); ?>" class="button pay"><?php _e( 'My Account', 'woocommerce' ); ?></a>
+                       <?php endif; ?>
+               </p>
+
+       <?php else : ?>
+
+               <p><?php echo apply_filters( 'woocommerce_thankyou_order_received_text', __( 'Thank you. Your order has been received.', 'woocommerce' ), $order ); ?></p>
+
+               <ul class="order_details">
+                       <li class="order">
+                               <?php _e( 'Order:', 'woocommerce' ); ?>
+                               <strong><?php echo $order->get_order_number(); ?></strong>
+                       </li>
+                       <li class="date">
+                               <?php _e( 'Date:', 'woocommerce' ); ?>
+                               <strong><?php echo date_i18n( get_option( 'date_format' ), strtotime( $order->order_date ) ); ?></strong>
+                       </li>
+                       <li class="total">
+                               <?php _e( 'Total:', 'woocommerce' ); ?>
+                               <strong><?php echo $order->get_formatted_order_total(); ?></strong>
+                       </li>
+                       <?php if ( $order->payment_method_title ) : ?>
+                       <li class="method">
+                               <?php _e( 'Payment method:', 'woocommerce' ); ?>
+                               <strong><?php echo $order->payment_method_title; ?></strong>
+                       </li>
+                       <?php endif; ?>
+               </ul>
+               <div class="clear"></div>
+
+       <?php endif; ?>
+
+       <?php do_action( 'woocommerce_thankyou_' . $order->payment_method, $order->id ); ?>
+       <?php do_action( 'woocommerce_thankyou', $order->id ); ?>
+
+<?php else : ?>
+
+       <p><?php echo apply_filters( 'woocommerce_thankyou_order_received_text', __( 'Thank you. Your order has been received.', 'woocommerce' ), null ); ?></p>
+
+<?php endif; ?>
\ No newline at end of file
diff --git a/woocommerce/content-product.php b/woocommerce/content-product.php
new file mode 100644 (file)
index 0000000..34b13ca
--- /dev/null
@@ -0,0 +1,74 @@
+<?php
+/**
+ * The template for displaying product content within loops.
+ *
+ * Override this template by copying it to yourtheme/woocommerce/content-product.php
+ *
+ * @author             WooThemes
+ * @package    WooCommerce/Templates
+ * @version     1.6.4
+ */
+
+if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
+
+global $product, $woocommerce_loop;
+
+// Store loop count we're currently on
+if ( empty( $woocommerce_loop['loop'] ) )
+       $woocommerce_loop['loop'] = 0;
+
+// Store column count for displaying the grid
+if ( empty( $woocommerce_loop['columns'] ) )
+       $woocommerce_loop['columns'] = apply_filters( 'loop_shop_columns', 4 );
+
+// Ensure visibility
+if ( ! $product || ! $product->is_visible() )
+       return;
+
+// Increase loop count
+$woocommerce_loop['loop']++;
+
+// Extra post classes
+$classes = array();
+
+if ( 0 == ( $woocommerce_loop['loop'] - 1 ) % $woocommerce_loop['columns'] || 1 == $woocommerce_loop['columns'] )
+       $classes[] = 'first';
+if ( 0 == $woocommerce_loop['loop'] % $woocommerce_loop['columns'] )
+       $classes[] = 'last';
+
+$classes[] = 'columns';
+?>
+
+<li <?php post_class( $classes ); ?>>
+<div>
+       <?php do_action( 'woocommerce_before_shop_loop_item' ); ?>
+
+       <a href="<?php the_permalink(); ?>">
+
+               <?php
+                       /**
+                        * woocommerce_before_shop_loop_item_title hook
+                        *
+                        * @hooked woocommerce_show_product_loop_sale_flash - 10
+                        * @hooked woocommerce_template_loop_product_thumbnail - 10
+                        */
+                       do_action( 'woocommerce_before_shop_loop_item_title' );
+               ?>
+
+               <h3><?php the_title(); ?></h3>
+
+               <?php
+                       /**
+                        * woocommerce_after_shop_loop_item_title hook
+                        *
+                        * @hooked woocommerce_template_loop_rating - 5
+                        * @hooked woocommerce_template_loop_price - 10
+                        */
+                       do_action( 'woocommerce_after_shop_loop_item_title' );
+               ?>
+
+       </a>
+
+       <?php do_action( 'woocommerce_after_shop_loop_item' ); ?>
+</div>
+</li>
diff --git a/woocommerce/content-product_cat.php b/woocommerce/content-product_cat.php
new file mode 100644 (file)
index 0000000..10945f1
--- /dev/null
@@ -0,0 +1,67 @@
+<?php
+/**
+ * The template for displaying product category thumbnails within loops.
+ *
+ * Override this template by copying it to yourtheme/woocommerce/content-product_cat.php
+ *
+ * @author             WooThemes
+ * @package    WooCommerce/Templates
+ * @version     1.6.4
+ */
+
+if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
+
+global $woocommerce_loop;
+
+// Store loop count we're currently on
+if ( empty( $woocommerce_loop['loop'] ) )
+       $woocommerce_loop['loop'] = 0;
+
+// Store column count for displaying the grid
+if ( empty( $woocommerce_loop['columns'] ) )
+       $woocommerce_loop['columns'] = apply_filters( 'loop_shop_columns', 4 );
+
+// Increase loop count
+$woocommerce_loop['loop']++;
+?>
+<li class="product-category product<?php
+    if ( ( $woocommerce_loop['loop'] - 1 ) % $woocommerce_loop['columns'] == 0 || $woocommerce_loop['columns'] == 1 )
+        echo ' first';
+       if ( $woocommerce_loop['loop'] % $woocommerce_loop['columns'] == 0 )
+               echo ' last';
+       ?>">
+
+       <?php do_action( 'woocommerce_before_subcategory', $category ); ?>
+
+       <a href="<?php echo get_term_link( $category->slug, 'product_cat' ); ?>">
+
+               <?php
+                       /**
+                        * woocommerce_before_subcategory_title hook
+                        *
+                        * @hooked woocommerce_subcategory_thumbnail - 10
+                        */
+                       do_action( 'woocommerce_before_subcategory_title', $category );
+               ?>
+
+               <h3>
+                       <?php
+                               echo $category->name;
+
+                               if ( $category->count > 0 )
+                                       echo apply_filters( 'woocommerce_subcategory_count_html', ' <mark class="count">(' . $category->count . ')</mark>', $category );
+                       ?>
+               </h3>
+
+               <?php
+                       /**
+                        * woocommerce_after_subcategory_title hook
+                        */
+                       do_action( 'woocommerce_after_subcategory_title', $category );
+               ?>
+
+       </a>
+
+       <?php do_action( 'woocommerce_after_subcategory', $category ); ?>
+
+</li>
\ No newline at end of file
diff --git a/woocommerce/content-single-product.php b/woocommerce/content-single-product.php
new file mode 100644 (file)
index 0000000..d40aba3
--- /dev/null
@@ -0,0 +1,75 @@
+<?php
+/**
+ * The template for displaying product content in the single-product.php template
+ *
+ * Override this template by copying it to yourtheme/woocommerce/content-single-product.php
+ *
+ * @author             WooThemes
+ * @package    WooCommerce/Templates
+ * @version     1.6.4
+ */
+
+if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
+?>
+
+<?php
+       /**
+        * woocommerce_before_single_product hook
+        *
+        * @hooked wc_print_notices - 10
+        */
+        do_action( 'woocommerce_before_single_product' );
+
+        if ( post_password_required() ) {
+               echo get_the_password_form();
+               return;
+        }
+?>
+
+<div itemscope itemtype="<?php echo woocommerce_get_product_schema(); ?>" id="product-<?php the_ID(); ?>" <?php post_class(); ?>>
+
+       <?php
+               /**
+                * woocommerce_before_single_product_summary hook
+                *
+                * @hooked woocommerce_show_product_sale_flash - 10
+                * @hooked woocommerce_show_product_images - 20
+                */
+               do_action( 'woocommerce_before_single_product_summary' );
+       ?>
+
+       <div class="summary entry-summary">
+
+               <?php
+                       /**
+                        * woocommerce_single_product_summary hook
+                        *
+                        * @hooked woocommerce_template_single_title - 5
+                        * @hooked woocommerce_template_single_rating - 10
+                        * @hooked woocommerce_template_single_price - 10
+                        * @hooked woocommerce_template_single_excerpt - 20
+                        * @hooked woocommerce_template_single_add_to_cart - 30
+                        * @hooked woocommerce_template_single_meta - 40
+                        * @hooked woocommerce_template_single_sharing - 50
+                        */
+                       do_action( 'woocommerce_single_product_summary' );
+               ?>
+
+       </div><!-- .summary -->
+
+       <?php
+               /**
+                * woocommerce_after_single_product_summary hook
+                *
+                * @hooked woocommerce_output_product_data_tabs - 10
+                * @hooked woocommerce_upsell_display - 15
+                * @hooked woocommerce_output_related_products - 20
+                */
+               do_action( 'woocommerce_after_single_product_summary' );
+       ?>
+
+       <meta itemprop="url" content="<?php the_permalink(); ?>" />
+
+</div><!-- #product-<?php the_ID(); ?> -->
+
+<?php do_action( 'woocommerce_after_single_product' ); ?>
diff --git a/woocommerce/content-widget-product.php b/woocommerce/content-widget-product.php
new file mode 100644 (file)
index 0000000..69be667
--- /dev/null
@@ -0,0 +1,9 @@
+<?php global $product; ?>
+<li>
+       <a href="<?php echo esc_url( get_permalink( $product->id ) ); ?>" title="<?php echo esc_attr( $product->get_title() ); ?>">
+               <?php echo $product->get_image(); ?>
+               <?php echo $product->get_title(); ?>
+       </a>
+       <?php if ( ! empty( $show_rating ) ) echo $product->get_rating_html(); ?>
+       <?php echo $product->get_price_html(); ?>
+</li>
\ No newline at end of file
diff --git a/woocommerce/emails/admin-new-order.php b/woocommerce/emails/admin-new-order.php
new file mode 100644 (file)
index 0000000..3e6c875
--- /dev/null
@@ -0,0 +1,61 @@
+<?php
+/**
+ * Admin new order email
+ *
+ * @author WooThemes
+ * @package WooCommerce/Templates/Emails/HTML
+ * @version 2.0.0
+ */
+if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly ?>
+
+<?php do_action( 'woocommerce_email_header', $email_heading ); ?>
+
+<p><?php printf( __( 'You have received an order from %s. Their order is as follows:', 'woocommerce' ), $order->billing_first_name . ' ' . $order->billing_last_name ); ?></p>
+
+<?php do_action( 'woocommerce_email_before_order_table', $order, true, false ); ?>
+
+<h2><a href="<?php echo admin_url( 'post.php?post=' . $order->id . '&action=edit' ); ?>"><?php printf( __( 'Order: %s', 'woocommerce'), $order->get_order_number() ); ?></a> (<?php printf( '<time datetime="%s">%s</time>', date_i18n( 'c', strtotime( $order->order_date ) ), date_i18n( wc_date_format(), strtotime( $order->order_date ) ) ); ?>)</h2>
+
+<table cellspacing="0" cellpadding="6" style="width: 100%; border: 1px solid #eee;" border="1" bordercolor="#eee">
+       <thead>
+               <tr>
+                       <th scope="col" style="text-align:left; border: 1px solid #eee;"><?php _e( 'Product', 'woocommerce' ); ?></th>
+                       <th scope="col" style="text-align:left; border: 1px solid #eee;"><?php _e( 'Quantity', 'woocommerce' ); ?></th>
+                       <th scope="col" style="text-align:left; border: 1px solid #eee;"><?php _e( 'Price', 'woocommerce' ); ?></th>
+               </tr>
+       </thead>
+       <tbody>
+               <?php echo $order->email_order_items_table( false, true ); ?>
+       </tbody>
+       <tfoot>
+               <?php
+                       if ( $totals = $order->get_order_item_totals() ) {
+                               $i = 0;
+                               foreach ( $totals as $total ) {
+                                       $i++;
+                                       ?><tr>
+                                               <th scope="row" colspan="2" style="text-align:left; border: 1px solid #eee; <?php if ( $i == 1 ) echo 'border-top-width: 4px;'; ?>"><?php echo $total['label']; ?></th>
+                                               <td style="text-align:left; border: 1px solid #eee; <?php if ( $i == 1 ) echo 'border-top-width: 4px;'; ?>"><?php echo $total['value']; ?></td>
+                                       </tr><?php
+                               }
+                       }
+               ?>
+       </tfoot>
+</table>
+
+<?php do_action( 'woocommerce_email_after_order_table', $order, true, false ); ?>
+
+<?php do_action( 'woocommerce_email_order_meta', $order, true, false ); ?>
+
+<h2><?php _e( 'Customer details', 'woocommerce' ); ?></h2>
+
+<?php if ( $order->billing_email ) : ?>
+       <p><strong><?php _e( 'Email:', 'woocommerce' ); ?></strong> <?php echo $order->billing_email; ?></p>
+<?php endif; ?>
+<?php if ( $order->billing_phone ) : ?>
+       <p><strong><?php _e( 'Tel:', 'woocommerce' ); ?></strong> <?php echo $order->billing_phone; ?></p>
+<?php endif; ?>
+
+<?php wc_get_template( 'emails/email-addresses.php', array( 'order' => $order ) ); ?>
+
+<?php do_action( 'woocommerce_email_footer' ); ?>
diff --git a/woocommerce/emails/customer-completed-order.php b/woocommerce/emails/customer-completed-order.php
new file mode 100644 (file)
index 0000000..624eda5
--- /dev/null
@@ -0,0 +1,62 @@
+<?php
+/**
+ * Customer completed order email
+ *
+ * @author             WooThemes
+ * @package    WooCommerce/Templates/Emails
+ * @version     1.6.4
+ */
+
+if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly ?>
+
+<?php do_action( 'woocommerce_email_header', $email_heading ); ?>
+
+<p><?php printf( __( "Hi there. Your recent order on %s has been completed. Your order details are shown below for your reference:", 'woocommerce' ), get_option( 'blogname' ) ); ?></p>
+
+<?php do_action( 'woocommerce_email_before_order_table', $order, $sent_to_admin, $plain_text ); ?>
+
+<h2><?php echo __( 'Order:', 'woocommerce' ) . ' ' . $order->get_order_number(); ?></h2>
+
+<table cellspacing="0" cellpadding="6" style="width: 100%; border: 1px solid #eee;" border="1" bordercolor="#eee">
+       <thead>
+               <tr>
+                       <th scope="col" style="text-align:left; border: 1px solid #eee;"><?php _e( 'Product', 'woocommerce' ); ?></th>
+                       <th scope="col" style="text-align:left; border: 1px solid #eee;"><?php _e( 'Quantity', 'woocommerce' ); ?></th>
+                       <th scope="col" style="text-align:left; border: 1px solid #eee;"><?php _e( 'Price', 'woocommerce' ); ?></th>
+               </tr>
+       </thead>
+       <tbody>
+               <?php echo $order->email_order_items_table( true, false, true ); ?>
+       </tbody>
+       <tfoot>
+               <?php
+                       if ( $totals = $order->get_order_item_totals() ) {
+                               $i = 0;
+                               foreach ( $totals as $total ) {
+                                       $i++;
+                                       ?><tr>
+                                               <th scope="row" colspan="2" style="text-align:left; border: 1px solid #eee; <?php if ( $i == 1 ) echo 'border-top-width: 4px;'; ?>"><?php echo $total['label']; ?></th>
+                                               <td style="text-align:left; border: 1px solid #eee; <?php if ( $i == 1 ) echo 'border-top-width: 4px;'; ?>"><?php echo $total['value']; ?></td>
+                                       </tr><?php
+                               }
+                       }
+               ?>
+       </tfoot>
+</table>
+
+<?php do_action( 'woocommerce_email_after_order_table', $order, $sent_to_admin, $plain_text ); ?>
+
+<?php do_action( 'woocommerce_email_order_meta', $order, $sent_to_admin, $plain_text ); ?>
+
+<h2><?php _e( 'Customer details', 'woocommerce' ); ?></h2>
+
+<?php if ($order->billing_email) : ?>
+       <p><strong><?php _e( 'Email:', 'woocommerce' ); ?></strong> <?php echo $order->billing_email; ?></p>
+<?php endif; ?>
+<?php if ($order->billing_phone) : ?>
+       <p><strong><?php _e( 'Tel:', 'woocommerce' ); ?></strong> <?php echo $order->billing_phone; ?></p>
+<?php endif; ?>
+
+<?php wc_get_template( 'emails/email-addresses.php', array( 'order' => $order ) ); ?>
+
+<?php do_action( 'woocommerce_email_footer' ); ?>
\ No newline at end of file
diff --git a/woocommerce/emails/customer-invoice.php b/woocommerce/emails/customer-invoice.php
new file mode 100644 (file)
index 0000000..12ad710
--- /dev/null
@@ -0,0 +1,67 @@
+<?php
+/**
+ * Customer invoice email
+ *
+ * @author             WooThemes
+ * @package    WooCommerce/Templates/Emails
+ * @version     2.2.0
+ */
+
+if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly ?>
+
+<?php do_action( 'woocommerce_email_header', $email_heading ); ?>
+
+<?php if ( $order->has_status( 'pending' ) ) : ?>
+
+       <p><?php printf( __( 'An order has been created for you on %s. To pay for this order please use the following link: %s', 'woocommerce' ), get_bloginfo( 'name' ), '<a href="' . esc_url( $order->get_checkout_payment_url() ) . '">' . __( 'pay', 'woocommerce' ) . '</a>' ); ?></p>
+
+<?php endif; ?>
+
+<?php do_action( 'woocommerce_email_before_order_table', $order, $sent_to_admin, $plain_text ); ?>
+
+<h2><?php echo __( 'Order:', 'woocommerce' ) . ' ' . $order->get_order_number(); ?> (<?php printf( '<time datetime="%s">%s</time>', date_i18n( 'c', strtotime( $order->order_date ) ), date_i18n( wc_date_format(), strtotime( $order->order_date ) ) ); ?>)</h2>
+
+<table cellspacing="0" cellpadding="6" style="width: 100%; border: 1px solid #eee;" border="1" bordercolor="#eee">
+       <thead>
+               <tr>
+                       <th scope="col" style="text-align:left; border: 1px solid #eee;"><?php _e( 'Product', 'woocommerce' ); ?></th>
+                       <th scope="col" style="text-align:left; border: 1px solid #eee;"><?php _e( 'Quantity', 'woocommerce' ); ?></th>
+                       <th scope="col" style="text-align:left; border: 1px solid #eee;"><?php _e( 'Price', 'woocommerce' ); ?></th>
+               </tr>
+       </thead>
+       <tbody>
+               <?php
+                       switch ( $order->get_status() ) {
+                               case "completed" :
+                                       echo $order->email_order_items_table( $order->is_download_permitted(), false, true );
+                               break;
+                               case "processing" :
+                                       echo $order->email_order_items_table( $order->is_download_permitted(), true, true );
+                               break;
+                               default :
+                                       echo $order->email_order_items_table( $order->is_download_permitted(), true, false );
+                               break;
+                       }
+               ?>
+       </tbody>
+       <tfoot>
+               <?php
+                       if ( $totals = $order->get_order_item_totals() ) {
+                               $i = 0;
+                               foreach ( $totals as $total ) {
+                                       $i++;
+                                       ?><tr>
+                                               <th scope="row" colspan="2" style="text-align:left; border: 1px solid #eee; <?php if ( $i == 1 ) echo 'border-top-width: 4px;'; ?>"><?php echo $total['label']; ?></th>
+                                               <td style="text-align:left; border: 1px solid #eee; <?php if ( $i == 1 ) echo 'border-top-width: 4px;'; ?>"><?php echo $total['value']; ?></td>
+                                       </tr><?php
+                               }
+                       }
+               ?>
+       </tfoot>
+</table>
+
+<?php do_action( 'woocommerce_email_after_order_table', $order, $sent_to_admin, $plain_text ); ?>
+
+<?php do_action( 'woocommerce_email_order_meta', $order, $sent_to_admin, $plain_text ); ?>
+
+<?php do_action( 'woocommerce_email_footer' ); ?>
\ No newline at end of file
diff --git a/woocommerce/emails/customer-new-account.php b/woocommerce/emails/customer-new-account.php
new file mode 100644 (file)
index 0000000..b8256ae
--- /dev/null
@@ -0,0 +1,24 @@
+<?php
+/**
+ * Customer new account email
+ *
+ * @author             WooThemes
+ * @package    WooCommerce/Templates/Emails
+ * @version     1.6.4
+ */
+
+if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly ?>
+
+<?php do_action( 'woocommerce_email_header', $email_heading ); ?>
+
+<p><?php printf( __( "Thanks for creating an account on %s. Your username is <strong>%s</strong>.", 'woocommerce' ), esc_html( $blogname ), esc_html( $user_login ) ); ?></p>
+
+<?php if ( get_option( 'woocommerce_registration_generate_password' ) == 'yes' && $password_generated ) : ?>
+
+       <p><?php printf( __( "Your password has been automatically generated: <strong>%s</strong>", 'woocommerce' ), esc_html( $user_pass ) ); ?></p>
+
+<?php endif; ?>
+
+<p><?php printf( __( 'You can access your account area to view your orders and change your password here: %s.', 'woocommerce' ), get_permalink( wc_get_page_id( 'myaccount' ) ) ); ?></p>
+
+<?php do_action( 'woocommerce_email_footer' ); ?>
\ No newline at end of file
diff --git a/woocommerce/emails/customer-note.php b/woocommerce/emails/customer-note.php
new file mode 100644 (file)
index 0000000..c2b162c
--- /dev/null
@@ -0,0 +1,66 @@
+<?php
+/**
+ * Customer note email
+ *
+ * @author             WooThemes
+ * @package    WooCommerce/Templates/Emails
+ * @version     1.6.4
+ */
+
+if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly ?>
+
+<?php do_action( 'woocommerce_email_header', $email_heading ); ?>
+
+<p><?php _e( "Hello, a note has just been added to your order:", 'woocommerce' ); ?></p>
+
+<blockquote><?php echo wpautop( wptexturize( $customer_note ) ) ?></blockquote>
+
+<p><?php _e( "For your reference, your order details are shown below.", 'woocommerce' ); ?></p>
+
+<?php do_action( 'woocommerce_email_before_order_table', $order, $sent_to_admin, $plain_text ); ?>
+
+<h2><?php echo __( 'Order:', 'woocommerce' ) . ' ' . $order->get_order_number(); ?></h2>
+
+<table cellspacing="0" cellpadding="6" style="width: 100%; border: 1px solid #eee;" border="1" bordercolor="#eee">
+       <thead>
+               <tr>
+                       <th scope="col" style="text-align:left; border: 1px solid #eee;"><?php _e( 'Product', 'woocommerce' ); ?></th>
+                       <th scope="col" style="text-align:left; border: 1px solid #eee;"><?php _e( 'Quantity', 'woocommerce' ); ?></th>
+                       <th scope="col" style="text-align:left; border: 1px solid #eee;"><?php _e( 'Price', 'woocommerce' ); ?></th>
+               </tr>
+       </thead>
+       <tbody>
+               <?php echo $order->email_order_items_table( $order->is_download_permitted(), true ); ?>
+       </tbody>
+       <tfoot>
+               <?php
+                       if ( $totals = $order->get_order_item_totals() ) {
+                               $i = 0;
+                               foreach ( $totals as $total ) {
+                                       $i++;
+                                       ?><tr>
+                                               <th scope="row" colspan="2" style="text-align:left; border: 1px solid #eee; <?php if ( $i == 1 ) echo 'border-top-width: 4px;'; ?>"><?php echo $total['label']; ?></th>
+                                               <td style="text-align:left; border: 1px solid #eee; <?php if ( $i == 1 ) echo 'border-top-width: 4px;'; ?>"><?php echo $total['value']; ?></td>
+                                       </tr><?php
+                               }
+                       }
+               ?>
+       </tfoot>
+</table>
+
+<?php do_action( 'woocommerce_email_after_order_table', $order, $sent_to_admin, $plain_text ); ?>
+
+<?php do_action( 'woocommerce_email_order_meta', $order, $sent_to_admin, $plain_text ); ?>
+
+<h2><?php _e( 'Customer details', 'woocommerce' ); ?></h2>
+
+<?php if ($order->billing_email) : ?>
+       <p><strong><?php _e( 'Email:', 'woocommerce' ); ?></strong> <?php echo $order->billing_email; ?></p>
+<?php endif; ?>
+<?php if ($order->billing_phone) : ?>
+       <p><strong><?php _e( 'Tel:', 'woocommerce' ); ?></strong> <?php echo $order->billing_phone; ?></p>
+<?php endif; ?>
+
+<?php wc_get_template( 'emails/email-addresses.php', array( 'order' => $order ) ); ?>
+
+<?php do_action( 'woocommerce_email_footer' ); ?>
\ No newline at end of file
diff --git a/woocommerce/emails/customer-processing-order.php b/woocommerce/emails/customer-processing-order.php
new file mode 100644 (file)
index 0000000..9086b4d
--- /dev/null
@@ -0,0 +1,62 @@
+<?php
+/**
+ * Customer processing order email
+ *
+ * @author             WooThemes
+ * @package    WooCommerce/Templates/Emails
+ * @version     1.6.4
+ */
+
+if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly ?>
+
+<?php do_action('woocommerce_email_header', $email_heading); ?>
+
+<p><?php _e( "Your order has been received and is now being processed. Your order details are shown below for your reference:", 'woocommerce' ); ?></p>
+
+<?php do_action( 'woocommerce_email_before_order_table', $order, $sent_to_admin, $plain_text ); ?>
+
+<h2><?php echo __( 'Order:', 'woocommerce' ) . ' ' . $order->get_order_number(); ?></h2>
+
+<table cellspacing="0" cellpadding="6" style="width: 100%; border: 1px solid #eee;" border="1" bordercolor="#eee">
+       <thead>
+               <tr>
+                       <th scope="col" style="text-align:left; border: 1px solid #eee;"><?php _e( 'Product', 'woocommerce' ); ?></th>
+                       <th scope="col" style="text-align:left; border: 1px solid #eee;"><?php _e( 'Quantity', 'woocommerce' ); ?></th>
+                       <th scope="col" style="text-align:left; border: 1px solid #eee;"><?php _e( 'Price', 'woocommerce' ); ?></th>
+               </tr>
+       </thead>
+       <tbody>
+               <?php echo $order->email_order_items_table( $order->is_download_permitted(), true, $order->has_status( 'processing' ) ); ?>
+       </tbody>
+       <tfoot>
+               <?php
+                       if ( $totals = $order->get_order_item_totals() ) {
+                               $i = 0;
+                               foreach ( $totals as $total ) {
+                                       $i++;
+                                       ?><tr>
+                                               <th scope="row" colspan="2" style="text-align:left; border: 1px solid #eee; <?php if ( $i == 1 ) echo 'border-top-width: 4px;'; ?>"><?php echo $total['label']; ?></th>
+                                               <td style="text-align:left; border: 1px solid #eee; <?php if ( $i == 1 ) echo 'border-top-width: 4px;'; ?>"><?php echo $total['value']; ?></td>
+                                       </tr><?php
+                               }
+                       }
+               ?>
+       </tfoot>
+</table>
+
+<?php do_action( 'woocommerce_email_after_order_table', $order, $sent_to_admin, $plain_text ); ?>
+
+<?php do_action( 'woocommerce_email_order_meta', $order, $sent_to_admin, $plain_text ); ?>
+
+<h2><?php _e( 'Customer details', 'woocommerce' ); ?></h2>
+
+<?php if ($order->billing_email) : ?>
+       <p><strong><?php _e( 'Email:', 'woocommerce' ); ?></strong> <?php echo $order->billing_email; ?></p>
+<?php endif; ?>
+<?php if ($order->billing_phone) : ?>
+       <p><strong><?php _e( 'Tel:', 'woocommerce' ); ?></strong> <?php echo $order->billing_phone; ?></p>
+<?php endif; ?>
+
+<?php wc_get_template( 'emails/email-addresses.php', array( 'order' => $order ) ); ?>
+
+<?php do_action( 'woocommerce_email_footer' ); ?>
\ No newline at end of file
diff --git a/woocommerce/emails/customer-reset-password.php b/woocommerce/emails/customer-reset-password.php
new file mode 100644 (file)
index 0000000..0629173
--- /dev/null
@@ -0,0 +1,24 @@
+<?php
+/**
+ * Customer Reset Password email
+ *
+ * @author             WooThemes
+ * @package    WooCommerce/Templates/Emails
+ * @version     2.0.0
+ */
+
+if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly ?>
+
+<?php do_action( 'woocommerce_email_header', $email_heading ); ?>
+
+<p><?php _e( 'Someone requested that the password be reset for the following account:', 'woocommerce' ); ?></p>
+<p><?php printf( __( 'Username: %s', 'woocommerce' ), $user_login ); ?></p>
+<p><?php _e( 'If this was a mistake, just ignore this email and nothing will happen.', 'woocommerce' ); ?></p>
+<p><?php _e( 'To reset your password, visit the following address:', 'woocommerce' ); ?></p>
+<p>
+    <a href="<?php echo esc_url( add_query_arg( array( 'key' => $reset_key, 'login' => rawurlencode( $user_login ) ), wc_get_endpoint_url( 'lost-password', '', get_permalink( wc_get_page_id( 'myaccount' ) ) ) ) ); ?>">
+                       <?php _e( 'Click here to reset your password', 'woocommerce' ); ?></a>
+</p>
+<p></p>
+
+<?php do_action( 'woocommerce_email_footer' ); ?>
\ No newline at end of file
diff --git a/woocommerce/emails/email-addresses.php b/woocommerce/emails/email-addresses.php
new file mode 100644 (file)
index 0000000..16e851e
--- /dev/null
@@ -0,0 +1,40 @@
+<?php
+/**
+ * Email Addresses
+ *
+ * @author             WooThemes
+ * @package    WooCommerce/Templates/Emails
+ * @version     2.2.0
+ */
+
+if ( ! defined( 'ABSPATH' ) ) {
+       exit; // Exit if accessed directly
+}
+
+?><table cellspacing="0" cellpadding="0" style="width: 100%; vertical-align: top;" border="0">
+
+       <tr>
+
+               <td valign="top" width="50%">
+
+                       <h3><?php _e( 'Billing address', 'woocommerce' ); ?></h3>
+
+                       <p><?php echo $order->get_formatted_billing_address(); ?></p>
+
+               </td>
+
+               <?php if ( ! wc_ship_to_billing_address_only() && $order->needs_shipping_address() && ( $shipping = $order->get_formatted_shipping_address() ) ) : ?>
+
+               <td valign="top" width="50%">
+
+                       <h3><?php _e( 'Shipping address', 'woocommerce' ); ?></h3>
+
+                       <p><?php echo $shipping; ?></p>
+
+               </td>
+
+               <?php endif; ?>
+
+       </tr>
+
+</table>
diff --git a/woocommerce/emails/email-footer.php b/woocommerce/emails/email-footer.php
new file mode 100644 (file)
index 0000000..8ad7b4f
--- /dev/null
@@ -0,0 +1,68 @@
+<?php
+/**
+ * Email Footer
+ *
+ * @author             WooThemes
+ * @package    WooCommerce/Templates/Emails
+ * @version     2.0.0
+ */
+
+if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
+
+// Load colours
+$base = get_option( 'woocommerce_email_base_color' );
+
+$base_lighter_40 = wc_hex_lighter( $base, 40 );
+
+// For gmail compatibility, including CSS styles in head/body are stripped out therefore styles need to be inline. These variables contain rules which are added to the template inline.
+$template_footer = "
+       border-top:0;
+       -webkit-border-radius:6px;
+";
+
+$credit = "
+       border:0;
+       color: $base_lighter_40;
+       font-family: Arial;
+       font-size:12px;
+       line-height:125%;
+       text-align:center;
+";
+?>
+                                                                                                                       </div>
+                                                                                                               </td>
+                                                    </tr>
+                                                </table>
+                                                <!-- End Content -->
+                                            </td>
+                                        </tr>
+                                    </table>
+                                    <!-- End Body -->
+                                </td>
+                            </tr>
+                               <tr>
+                               <td align="center" valign="top">
+                                    <!-- Footer -->
+                                       <table border="0" cellpadding="10" cellspacing="0" width="600" id="template_footer" style="<?php echo $template_footer; ?>">
+                                       <tr>
+                                               <td valign="top">
+                                                <table border="0" cellpadding="10" cellspacing="0" width="100%">
+                                                    <tr>
+                                                        <td colspan="2" valign="middle" id="credit" style="<?php echo $credit; ?>">
+                                                               <?php echo wpautop( wp_kses_post( wptexturize( apply_filters( 'woocommerce_email_footer_text', get_option( 'woocommerce_email_footer_text' ) ) ) ) ); ?>
+                                                        </td>
+                                                    </tr>
+                                                </table>
+                                            </td>
+                                        </tr>
+                                    </table>
+                                    <!-- End Footer -->
+                                </td>
+                            </tr>
+                        </table>
+                    </td>
+                </tr>
+            </table>
+        </div>
+    </body>
+</html>
\ No newline at end of file
diff --git a/woocommerce/emails/email-header.php b/woocommerce/emails/email-header.php
new file mode 100644 (file)
index 0000000..5dc7932
--- /dev/null
@@ -0,0 +1,116 @@
+<?php
+/**
+ * Email Header
+ *
+ * @author             WooThemes
+ * @package    WooCommerce/Templates/Emails
+ * @version     2.0.0
+ */
+
+if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
+
+// Load colours
+$bg            = get_option( 'woocommerce_email_background_color' );
+$body          = get_option( 'woocommerce_email_body_background_color' );
+$base          = get_option( 'woocommerce_email_base_color' );
+$base_text     = wc_light_or_dark( $base, '#202020', '#ffffff' );
+$text          = get_option( 'woocommerce_email_text_color' );
+
+$bg_darker_10 = wc_hex_darker( $bg, 10 );
+$base_lighter_20 = wc_hex_lighter( $base, 20 );
+$text_lighter_20 = wc_hex_lighter( $text, 20 );
+
+// For gmail compatibility, including CSS styles in head/body are stripped out therefore styles need to be inline. These variables contain rules which are added to the template inline. !important; is a gmail hack to prevent styles being stripped if it doesn't like something.
+$wrapper = "
+       background-color: " . esc_attr( $bg ) . ";
+       width:100%;
+       -webkit-text-size-adjust:none !important;
+       margin:0;
+       padding: 70px 0 70px 0;
+";
+$template_container = "
+       box-shadow:0 0 0 3px rgba(0,0,0,0.025) !important;
+       border-radius:6px !important;
+       background-color: " . esc_attr( $body ) . ";
+       border: 1px solid $bg_darker_10;
+       border-radius:6px !important;
+";
+$template_header = "
+       background-color: " . esc_attr( $base ) .";
+       color: $base_text;
+       border-top-left-radius:6px !important;
+       border-top-right-radius:6px !important;
+       border-bottom: 0;
+       font-family:Arial;
+       font-weight:bold;
+       line-height:100%;
+       vertical-align:middle;
+";
+$body_content = "
+       background-color: " . esc_attr( $body ) . ";
+       border-radius:6px !important;
+";
+$body_content_inner = "
+       color: $text_lighter_20;
+       font-family:Arial;
+       font-size:14px;
+       line-height:150%;
+       text-align:left;
+";
+$header_content_h1 = "
+       color: " . esc_attr( $base_text ) . ";
+       margin:0;
+       padding: 28px 24px;
+       text-shadow: 0 1px 0 $base_lighter_20;
+       display:block;
+       font-family:Arial;
+       font-size:30px;
+       font-weight:bold;
+       text-align:left;
+       line-height: 150%;
+";
+?>
+<!DOCTYPE html>
+<html>
+    <head>
+        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+        <title><?php echo get_bloginfo( 'name' ); ?></title>
+       </head>
+    <body leftmargin="0" marginwidth="0" topmargin="0" marginheight="0" offset="0">
+       <div style="<?php echo $wrapper; ?>">
+               <table border="0" cellpadding="0" cellspacing="0" height="100%" width="100%">
+               <tr>
+                       <td align="center" valign="top">
+                                               <div id="template_header_image">
+                                       <?php
+                                               if ( $img = get_option( 'woocommerce_email_header_image' ) ) {
+                                                       echo '<p style="margin-top:0;"><img src="' . esc_url( $img ) . '" alt="' . get_bloginfo( 'name' ) . '" /></p>';
+                                               }
+                                       ?>
+                                               </div>
+                       <table border="0" cellpadding="0" cellspacing="0" width="600" id="template_container" style="<?php echo $template_container; ?>">
+                               <tr>
+                               <td align="center" valign="top">
+                                    <!-- Header -->
+                                       <table border="0" cellpadding="0" cellspacing="0" width="600" id="template_header" style="<?php echo $template_header; ?>" bgcolor="<?php echo $base; ?>">
+                                        <tr>
+                                            <td>
+                                               <h1 style="<?php echo $header_content_h1; ?>"><?php echo $email_heading; ?></h1>
+
+                                            </td>
+                                        </tr>
+                                    </table>
+                                    <!-- End Header -->
+                                </td>
+                            </tr>
+                               <tr>
+                               <td align="center" valign="top">
+                                    <!-- Body -->
+                                       <table border="0" cellpadding="0" cellspacing="0" width="600" id="template_body">
+                                       <tr>
+                                            <td valign="top" style="<?php echo $body_content; ?>">
+                                                <!-- Content -->
+                                                <table border="0" cellpadding="20" cellspacing="0" width="100%">
+                                                    <tr>
+                                                        <td valign="top">
+                                                            <div style="<?php echo $body_content_inner; ?>">
diff --git a/woocommerce/emails/email-order-items.php b/woocommerce/emails/email-order-items.php
new file mode 100644 (file)
index 0000000..45dc1e4
--- /dev/null
@@ -0,0 +1,69 @@
+<?php
+/**
+ * Email Order Items
+ *
+ * @author             WooThemes
+ * @package    WooCommerce/Templates/Emails
+ * @version     2.1.2
+ */
+
+if ( ! defined( 'ABSPATH' ) ) {
+       exit; // Exit if accessed directly
+}
+
+foreach ( $items as $item_id => $item ) :
+       $_product     = apply_filters( 'woocommerce_order_item_product', $order->get_product_from_item( $item ), $item );
+       $item_meta    = new WC_Order_Item_Meta( $item['item_meta'], $_product );
+       ?>
+       <tr>
+               <td style="text-align:left; vertical-align:middle; border: 1px solid #eee; word-wrap:break-word;"><?php
+
+                       // Show title/image etc
+                       if ( $show_image ) {
+                               echo apply_filters( 'woocommerce_order_item_thumbnail', '<img src="' . ( $_product->get_image_id() ? current( wp_get_attachment_image_src( $_product->get_image_id(), 'thumbnail') ) : wc_placeholder_img_src() ) .'" alt="' . __( 'Product Image', 'woocommerce' ) . '" height="' . esc_attr( $image_size[1] ) . '" width="' . esc_attr( $image_size[0] ) . '" style="vertical-align:middle; margin-right: 10px;" />', $item );
+                       }
+
+                       // Product name
+                       echo apply_filters( 'woocommerce_order_item_name', $item['name'], $item );
+
+                       // SKU
+                       if ( $show_sku && is_object( $_product ) && $_product->get_sku() ) {
+                               echo ' (#' . $_product->get_sku() . ')';
+                       }
+
+                       // File URLs
+                       if ( $show_download_links && is_object( $_product ) && $_product->exists() && $_product->is_downloadable() ) {
+
+                               $download_files = $order->get_item_downloads( $item );
+                               $i              = 0;
+
+                               foreach ( $download_files as $download_id => $file ) {
+                                       $i++;
+
+                                       if ( count( $download_files ) > 1 ) {
+                                               $prefix = sprintf( __( 'Download %d', 'woocommerce' ), $i );
+                                       } elseif ( $i == 1 ) {
+                                               $prefix = __( 'Download', 'woocommerce' );
+                                       }
+
+                                       echo '<br/><small>' . $prefix . ': <a href="' . esc_url( $file['download_url'] ) . '" target="_blank">' . esc_html( $file['name'] ) . '</a></small>';
+                               }
+                       }
+
+                       // Variation
+                       if ( $item_meta->meta ) {
+                               echo '<br/><small>' . nl2br( $item_meta->display( true, true ) ) . '</small>';
+                       }
+
+               ?></td>
+               <td style="text-align:left; vertical-align:middle; border: 1px solid #eee;"><?php echo $item['qty'] ;?></td>
+               <td style="text-align:left; vertical-align:middle; border: 1px solid #eee;"><?php echo $order->get_formatted_line_subtotal( $item ); ?></td>
+       </tr>
+
+       <?php if ( $show_purchase_note && is_object( $_product ) && $purchase_note = get_post_meta( $_product->id, '_purchase_note', true ) ) : ?>
+               <tr>
+                       <td colspan="3" style="text-align:left; vertical-align:middle; border: 1px solid #eee;"><?php echo wpautop( do_shortcode( wp_kses_post( $purchase_note ) ) ); ?></td>
+               </tr>
+       <?php endif; ?>
+
+<?php endforeach; ?>
diff --git a/woocommerce/emails/plain/admin-new-order.php b/woocommerce/emails/plain/admin-new-order.php
new file mode 100644 (file)
index 0000000..50d1e07
--- /dev/null
@@ -0,0 +1,51 @@
+<?php
+/**
+ * Admin new order email (plain text)
+ *
+ * @author             WooThemes
+ * @package    WooCommerce/Templates/Emails/Plain
+ * @version    2.0.0
+ */
+if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
+
+echo $email_heading . "\n\n";
+
+echo sprintf( __( 'You have received an order from %s. Their order is as follows:', 'woocommerce' ), $order->billing_first_name . ' ' . $order->billing_last_name ) . "\n\n";
+
+echo "****************************************************\n\n";
+
+do_action( 'woocommerce_email_before_order_table', $order, $sent_to_admin, $plain_text );
+
+echo sprintf( __( 'Order number: %s', 'woocommerce'), $order->get_order_number() ) . "\n";
+echo sprintf( __( 'Order link: %s', 'woocommerce'), admin_url( 'post.php?post=' . $order->id . '&action=edit' ) ) . "\n";
+echo sprintf( __( 'Order date: %s', 'woocommerce'), date_i18n( __( 'jS F Y', 'woocommerce' ), strtotime( $order->order_date ) ) ) . "\n";
+
+do_action( 'woocommerce_email_order_meta', $order, $sent_to_admin, $plain_text );
+
+echo "\n" . $order->email_order_items_table( false, true, '', '', '', true );
+
+echo "----------\n\n";
+
+if ( $totals = $order->get_order_item_totals() ) {
+       foreach ( $totals as $total ) {
+               echo $total['label'] . "\t " . $total['value'] . "\n";
+       }
+}
+
+echo "\n****************************************************\n\n";
+
+do_action( 'woocommerce_email_after_order_table', $order, $sent_to_admin, $plain_text );
+
+echo __( 'Customer details', 'woocommerce' ) . "\n";
+
+if ( $order->billing_email )
+       echo __( 'Email:', 'woocommerce' ); echo $order->billing_email . "\n";
+
+if ( $order->billing_phone )
+       echo __( 'Tel:', 'woocommerce' ); ?> <?php echo $order->billing_phone . "\n";
+
+wc_get_template( 'emails/plain/email-addresses.php', array( 'order' => $order ) );
+
+echo "\n****************************************************\n\n";
+
+echo apply_filters( 'woocommerce_email_footer_text', get_option( 'woocommerce_email_footer_text' ) );
\ No newline at end of file
diff --git a/woocommerce/emails/plain/customer-completed-order.php b/woocommerce/emails/plain/customer-completed-order.php
new file mode 100644 (file)
index 0000000..cf346ee
--- /dev/null
@@ -0,0 +1,50 @@
+<?php
+/**
+ * Customer completed order email (plain text)
+ *
+ * @author             WooThemes
+ * @package            WooCommerce/Templates/Emails/Plain
+ * @version            2.0.0
+ */
+if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
+
+echo $email_heading . "\n\n";
+
+echo sprintf( __( "Hi there. Your recent order on %s has been completed. Your order details are shown below for your reference:", 'woocommerce' ), get_option( 'blogname' ) ) . "\n\n";
+
+echo "****************************************************\n\n";
+
+do_action( 'woocommerce_email_before_order_table', $order, $sent_to_admin, $plain_text );
+
+echo sprintf( __( 'Order number: %s', 'woocommerce'), $order->get_order_number() ) . "\n";
+echo sprintf( __( 'Order date: %s', 'woocommerce'), date_i18n( wc_date_format(), strtotime( $order->order_date ) ) ) . "\n";
+
+do_action( 'woocommerce_email_order_meta', $order, $sent_to_admin, $plain_text );
+
+echo "\n" . $order->email_order_items_table( true, false, true, '', '', true );
+
+echo "----------\n\n";
+
+if ( $totals = $order->get_order_item_totals() ) {
+       foreach ( $totals as $total ) {
+               echo $total['label'] . "\t " . $total['value'] . "\n";
+       }
+}
+
+echo "\n****************************************************\n\n";
+
+do_action( 'woocommerce_email_after_order_table', $order, $sent_to_admin, $plain_text );
+
+echo __( 'Your details', 'woocommerce' ) . "\n\n";
+
+if ( $order->billing_email )
+       echo __( 'Email:', 'woocommerce' ); echo $order->billing_email . "\n";
+
+if ( $order->billing_phone )
+       echo __( 'Tel:', 'woocommerce' ); ?> <?php echo $order->billing_phone . "\n";
+
+wc_get_template( 'emails/plain/email-addresses.php', array( 'order' => $order ) );
+
+echo "\n****************************************************\n\n";
+
+echo apply_filters( 'woocommerce_email_footer_text', get_option( 'woocommerce_email_footer_text' ) );
\ No newline at end of file
diff --git a/woocommerce/emails/plain/customer-invoice.php b/woocommerce/emails/plain/customer-invoice.php
new file mode 100644 (file)
index 0000000..e93eada
--- /dev/null
@@ -0,0 +1,51 @@
+<?php
+/**
+ * Customer invoice email (plain text)
+ *
+ * @author             WooThemes
+ * @package            WooCommerce/Templates/Emails/Plain
+ * @version            2.2.0
+ */
+if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
+
+echo $email_heading . "\n\n";
+
+if ( $order->has_status( 'pending' ) )
+       echo sprintf( __( 'An order has been created for you on %s. To pay for this order please use the following link: %s', 'woocommerce' ), get_bloginfo( 'name' ), $order->get_checkout_payment_url() ) . "\n\n";
+
+echo "****************************************************\n\n";
+
+do_action( 'woocommerce_email_before_order_table', $order, $sent_to_admin, $plain_text );
+
+echo sprintf( __( 'Order number: %s', 'woocommerce'), $order->get_order_number() ) . "\n";
+echo sprintf( __( 'Order date: %s', 'woocommerce'), date_i18n( wc_date_format(), strtotime( $order->order_date ) ) ) . "\n";
+
+do_action( 'woocommerce_email_order_meta', $order, $sent_to_admin, $plain_text );
+
+echo "\n";
+
+switch ( $order->get_status() ) {
+       case "completed" :
+               echo $order->email_order_items_table( $order->is_download_permitted(), false, true, '', '', true );
+       break;
+       case "processing" :
+               echo $order->email_order_items_table( $order->is_download_permitted(), true, true, '', '', true );
+       break;
+       default :
+               echo $order->email_order_items_table( $order->is_download_permitted(), true, false, '', '', true );
+       break;
+}
+
+echo "----------\n\n";
+
+if ( $totals = $order->get_order_item_totals() ) {
+       foreach ( $totals as $total ) {
+               echo $total['label'] . "\t " . $total['value'] . "\n";
+       }
+}
+
+echo "\n****************************************************\n\n";
+
+do_action( 'woocommerce_email_after_order_table', $order, $sent_to_admin, $plain_text );
+
+echo apply_filters( 'woocommerce_email_footer_text', get_option( 'woocommerce_email_footer_text' ) );
\ No newline at end of file
diff --git a/woocommerce/emails/plain/customer-new-account.php b/woocommerce/emails/plain/customer-new-account.php
new file mode 100644 (file)
index 0000000..cffe438
--- /dev/null
@@ -0,0 +1,22 @@
+<?php
+/**
+ * Customer new account email
+ *
+ * @author             WooThemes
+ * @package    WooCommerce/Templates/Emails/Plain
+ * @version     2.0.0
+ */
+if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
+
+echo $email_heading . "\n\n";
+
+echo sprintf( __( "Thanks for creating an account on %s. Your username is <strong>%s</strong>.", 'woocommerce' ), $blogname, $user_login ) . "\n\n";
+
+if ( get_option( 'woocommerce_registration_generate_password' ) === 'yes' && $password_generated )
+       echo sprintf( __( "Your password is <strong>%s</strong>.", 'woocommerce' ), $user_pass ) . "\n\n";
+
+echo sprintf( __( 'You can access your account area to view your orders and change your password here: %s.', 'woocommerce' ), get_permalink( wc_get_page_id( 'myaccount' ) ) ) . "\n\n";
+
+echo "\n****************************************************\n\n";
+
+echo apply_filters( 'woocommerce_email_footer_text', get_option( 'woocommerce_email_footer_text' ) );
\ No newline at end of file
diff --git a/woocommerce/emails/plain/customer-note.php b/woocommerce/emails/plain/customer-note.php
new file mode 100644 (file)
index 0000000..972d0fb
--- /dev/null
@@ -0,0 +1,58 @@
+<?php
+/**
+ * Customer note email
+ *
+ * @author             WooThemes
+ * @package    WooCommerce/Templates/Emails/Plain
+ * @version     2.0.0
+ */
+if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
+
+echo $email_heading . "\n\n";
+
+echo __( "Hello, a note has just been added to your order:", 'woocommerce' ) . "\n\n";
+
+echo "----------\n\n";
+
+echo wptexturize( $customer_note ) . "\n\n";
+
+echo "----------\n\n";
+
+echo __( "For your reference, your order details are shown below.", 'woocommerce' ) . "\n\n";
+
+echo "****************************************************\n\n";
+
+do_action( 'woocommerce_email_before_order_table', $order, $sent_to_admin, $plain_text );
+
+echo sprintf( __( 'Order number: %s', 'woocommerce'), $order->get_order_number() ) . "\n";
+echo sprintf( __( 'Order date: %s', 'woocommerce'), date_i18n( wc_date_format(), strtotime( $order->order_date ) ) ) . "\n";
+
+do_action( 'woocommerce_email_order_meta', $order, $sent_to_admin, $plain_text );
+
+echo "\n" . $order->email_order_items_table( $order->is_download_permitted(), true, '', '', '', true );
+
+echo "----------\n\n";
+
+if ( $totals = $order->get_order_item_totals() ) {
+       foreach ( $totals as $total ) {
+               echo $total['label'] . "\t " . $total['value'] . "\n";
+       }
+}
+
+echo "\n****************************************************\n\n";
+
+do_action( 'woocommerce_email_after_order_table', $order, $sent_to_admin, $plain_text );
+
+echo __( 'Your details', 'woocommerce' ) . "\n\n";
+
+if ( $order->billing_email )
+       echo __( 'Email:', 'woocommerce' ); echo $order->billing_email . "\n";
+
+if ( $order->billing_phone )
+       echo __( 'Tel:', 'woocommerce' ); ?> <?php echo $order->billing_phone . "\n";
+
+wc_get_template( 'emails/plain/email-addresses.php', array( 'order' => $order ) );
+
+echo "\n****************************************************\n\n";
+
+echo apply_filters( 'woocommerce_email_footer_text', get_option( 'woocommerce_email_footer_text' ) );
\ No newline at end of file
diff --git a/woocommerce/emails/plain/customer-processing-order.php b/woocommerce/emails/plain/customer-processing-order.php
new file mode 100644 (file)
index 0000000..fe0399c
--- /dev/null
@@ -0,0 +1,50 @@
+<?php
+/**
+ * Customer processing order email
+ *
+ * @author             WooThemes
+ * @package    WooCommerce/Templates/Emails/Plain
+ * @version     2.2.0
+ */
+if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
+
+echo $email_heading . "\n\n";
+
+echo __( "Your order has been received and is now being processed. Your order details are shown below for your reference:", 'woocommerce' ) . "\n\n";
+
+echo "****************************************************\n\n";
+
+do_action( 'woocommerce_email_before_order_table', $order, $sent_to_admin, $plain_text );
+
+echo sprintf( __( 'Order number: %s', 'woocommerce'), $order->get_order_number() ) . "\n";
+echo sprintf( __( 'Order date: %s', 'woocommerce'), date_i18n( wc_date_format(), strtotime( $order->order_date ) ) ) . "\n";
+
+do_action( 'woocommerce_email_order_meta', $order, $sent_to_admin, $plain_text );
+
+echo "\n" . $order->email_order_items_table( $order->is_download_permitted(), true, $order->has_status( 'processing' ), '', '', true );
+
+echo "----------\n\n";
+
+if ( $totals = $order->get_order_item_totals() ) {
+       foreach ( $totals as $total ) {
+               echo $total['label'] . "\t " . $total['value'] . "\n";
+       }
+}
+
+echo "\n****************************************************\n\n";
+
+do_action( 'woocommerce_email_after_order_table', $order, $sent_to_admin, $plain_text );
+
+echo __( 'Your details', 'woocommerce' ) . "\n\n";
+
+if ( $order->billing_email )
+       echo __( 'Email:', 'woocommerce' ); echo $order->billing_email . "\n";
+
+if ( $order->billing_phone )
+       echo __( 'Tel:', 'woocommerce' ); ?> <?php echo $order->billing_phone . "\n";
+
+wc_get_template( 'emails/plain/email-addresses.php', array( 'order' => $order ) );
+
+echo "\n****************************************************\n\n";
+
+echo apply_filters( 'woocommerce_email_footer_text', get_option( 'woocommerce_email_footer_text' ) );
\ No newline at end of file
diff --git a/woocommerce/emails/plain/customer-reset-password.php b/woocommerce/emails/plain/customer-reset-password.php
new file mode 100644 (file)
index 0000000..7b2e29a
--- /dev/null
@@ -0,0 +1,23 @@
+<?php
+/**
+ * Customer Reset Password email
+ *
+ * @author             WooThemes
+ * @package    WooCommerce/Templates/Emails/Plain
+ * @version     2.0.0
+ */
+if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
+
+echo $email_heading . "\n\n";
+
+echo __( 'Someone requested that the password be reset for the following account:', 'woocommerce' ) . "\r\n\r\n";
+echo esc_url( network_home_url( '/' ) ) . "\r\n\r\n";
+echo sprintf( __( 'Username: %s', 'woocommerce' ), $user_login ) . "\r\n\r\n";
+echo __( 'If this was a mistake, just ignore this email and nothing will happen.', 'woocommerce' ) . "\r\n\r\n";
+echo __( 'To reset your password, visit the following address:', 'woocommerce' ) . "\r\n\r\n";
+
+echo esc_url( add_query_arg( array( 'key' => $reset_key, 'login' => $user_login ), wc_get_endpoint_url( 'lost-password', '', get_permalink( wc_get_page_id( 'myaccount' ) ) ) ) ) . "\r\n";
+
+echo "\n****************************************************\n\n";
+
+echo apply_filters( 'woocommerce_email_footer_text', get_option( 'woocommerce_email_footer_text' ) );
diff --git a/woocommerce/emails/plain/email-addresses.php b/woocommerce/emails/plain/email-addresses.php
new file mode 100644 (file)
index 0000000..75659b9
--- /dev/null
@@ -0,0 +1,22 @@
+<?php
+/**
+ * Email Addresses (plain)
+ *
+ * @author             WooThemes
+ * @package    WooCommerce/Templates/Emails/Plain
+ * @version     2.2.0
+ */
+
+if ( ! defined( 'ABSPATH' ) ) {
+       exit; // Exit if accessed directly
+}
+
+echo "\n" . __( 'Billing address', 'woocommerce' ) . ":\n";
+echo preg_replace( '#<br\s*/?>#i', "\n", $order->get_formatted_billing_address() ) . "\n\n";
+
+if ( ! wc_ship_to_billing_address_only() && $order->needs_shipping_address() && ( $shipping = $order->get_formatted_shipping_address() ) ) {
+
+       echo __( 'Shipping address', 'woocommerce' ) . ":\n";
+
+       echo preg_replace( '#<br\s*/?>#i', "\n", $shipping ) . "\n\n";
+}
diff --git a/woocommerce/emails/plain/email-order-items.php b/woocommerce/emails/plain/email-order-items.php
new file mode 100644 (file)
index 0000000..4970c0a
--- /dev/null
@@ -0,0 +1,66 @@
+<?php
+/**
+ * Email Order Items (plain)
+ *
+ * @author             WooThemes
+ * @package    WooCommerce/Templates/Emails/Plain
+ * @version     2.1.2
+ */
+
+if ( ! defined( 'ABSPATH' ) ) {
+       exit; // Exit if accessed directly
+}
+
+foreach ( $items as $item_id => $item ) :
+       $_product     = apply_filters( 'woocommerce_order_item_product', $order->get_product_from_item( $item ), $item );
+       $item_meta    = new WC_Order_Item_Meta( $item['item_meta'], $_product );
+
+       // Title
+       echo apply_filters( 'woocommerce_order_item_name', $item['name'], $item );
+
+       // SKU
+       if ( $show_sku && $_product->get_sku() ) {
+               echo ' (#' . $_product->get_sku() . ')';
+       }
+
+       // allow other plugins to add additional product information here
+       do_action( 'woocommerce_order_item_meta_start', $item_id, $item, $order );
+
+       // Variation
+       echo $item_meta->meta ? "\n" . $item_meta->display( true, true ) : '';
+
+       // Quantity
+       echo "\n" . sprintf( __( 'Quantity: %s', 'woocommerce' ), $item['qty'] );
+
+       // Cost
+       echo "\n" . sprintf( __( 'Cost: %s', 'woocommerce' ), $order->get_formatted_line_subtotal( $item ) );
+
+       // Download URLs
+       if ( $show_download_links && $_product->exists() && $_product->is_downloadable() ) {
+               $download_files = $order->get_item_downloads( $item );
+               $i              = 0;
+
+               foreach ( $download_files as $download_id => $file ) {
+                       $i++;
+
+                       if ( count( $download_files ) > 1 ) {
+                               $prefix = sprintf( __( 'Download %d', 'woocommerce' ), $i );
+                       } elseif ( $i == 1 ) {
+                               $prefix = __( 'Download', 'woocommerce' );
+                       }
+
+                       echo "\n" . $prefix . '(' . esc_html( $file['name'] ) . '): ' . esc_url( $file['download_url'] );
+               }
+       }
+
+       // allow other plugins to add additional product information here
+       do_action( 'woocommerce_order_item_meta_end', $item_id, $item, $order );
+
+       // Note
+       if ( $show_purchase_note && $purchase_note = get_post_meta( $_product->id, '_purchase_note', true ) ) {
+               echo "\n" . do_shortcode( wp_kses_post( $purchase_note ) );
+       }
+
+       echo "\n\n";
+
+endforeach;
diff --git a/woocommerce/global/breadcrumb.php b/woocommerce/global/breadcrumb.php
new file mode 100644 (file)
index 0000000..54dedab
--- /dev/null
@@ -0,0 +1,221 @@
+<?php
+/**
+ * Shop breadcrumb
+ *
+ * @author             WooThemes
+ * @package    WooCommerce/Templates
+ * @version     2.2.0
+ * @see         woocommerce_breadcrumb()
+ */
+
+if ( ! defined( 'ABSPATH' ) ) {
+       exit; // Exit if accessed directly
+}
+
+global $post, $wp_query, $author;
+
+$prepend      = '';
+$permalinks   = get_option( 'woocommerce_permalinks' );
+$shop_page_id = wc_get_page_id( 'shop' );
+$shop_page    = get_post( $shop_page_id );
+
+// If permalinks contain the shop page in the URI prepend the breadcrumb with shop
+if ( $shop_page_id && $shop_page && strstr( $permalinks['product_base'], '/' . $shop_page->post_name ) && get_option( 'page_on_front' ) != $shop_page_id ) {
+       $prepend = $before . '<a href="' . get_permalink( $shop_page ) . '">' . $shop_page->post_title . '</a> ' . $after . $delimiter;
+}
+
+if ( ( ! is_front_page() && ! ( is_post_type_archive() && get_option( 'page_on_front' ) == wc_get_page_id( 'shop' ) ) ) || is_paged() ) {
+
+       echo $wrap_before;
+
+       if ( ! empty( $home ) ) {
+               echo $before . '<a class="home" href="' . apply_filters( 'woocommerce_breadcrumb_home_url', home_url() ) . '">' . $home . '</a>' . $after . $delimiter;
+       }
+
+       if ( is_home() ) {
+
+               echo $before . single_post_title('', false) . $after;
+
+       } elseif ( is_category() ) {
+
+               $cat_obj = $wp_query->get_queried_object();
+               $this_category = get_category( $cat_obj->term_id );
+
+               if ( 0 != $this_category->parent ) {
+                       $parent_category = get_category( $this_category->parent );
+                       if ( ( $parents = get_category_parents( $parent_category, TRUE, $after . $delimiter . $before ) ) && ! is_wp_error( $parents ) ) {
+                               echo $before . rtrim( $parents, $after . $delimiter . $before ) . $after . $delimiter;
+                       }
+               }
+
+               echo $before . single_cat_title( '', false ) . $after;
+
+       } elseif ( is_tax( 'product_cat' ) ) {
+
+               echo $prepend;
+
+               $current_term = $wp_query->get_queried_object();
+
+               $ancestors = array_reverse( get_ancestors( $current_term->term_id, 'product_cat' ) );
+
+               foreach ( $ancestors as $ancestor ) {
+                       $ancestor = get_term( $ancestor, 'product_cat' );
+
+                       echo $before .  '<a href="' . get_term_link( $ancestor ) . '">' . esc_html( $ancestor->name ) . '</a>' . $after . $delimiter;
+               }
+
+               echo $before . esc_html( $current_term->name ) . $after;
+
+       } elseif ( is_tax( 'product_tag' ) ) {
+
+               $queried_object = $wp_query->get_queried_object();
+               echo $prepend . $before . __( 'Products tagged &ldquo;', 'woocommerce' ) . $queried_object->name . '&rdquo;' . $after;
+
+       } elseif ( is_day() ) {
+
+               echo $before . '<a href="' . get_year_link( get_the_time( 'Y' ) ) . '">' . get_the_time( 'Y' ) . '</a>' . $after . $delimiter;
+               echo $before . '<a href="' . get_month_link( get_the_time( 'Y' ), get_the_time( 'm' ) ) . '">' . get_the_time( 'F' ) . '</a>' . $after . $delimiter;
+               echo $before . get_the_time( 'd' ) . $after;
+
+       } elseif ( is_month() ) {
+
+               echo $before . '<a href="' . get_year_link( get_the_time( 'Y' ) ) . '">' . get_the_time( 'Y' ) . '</a>' . $after . $delimiter;
+               echo $before . get_the_time( 'F' ) . $after;
+
+       } elseif ( is_year() ) {
+
+               echo $before . get_the_time( 'Y' ) . $after;
+
+       } elseif ( is_post_type_archive( 'product' ) && get_option( 'page_on_front' ) !== $shop_page_id ) {
+
+               $_name = wc_get_page_id( 'shop' ) ? get_the_title( wc_get_page_id( 'shop' ) ) : '';
+
+               if ( ! $_name ) {
+                       $product_post_type = get_post_type_object( 'product' );
+                       $_name = $product_post_type->labels->singular_name;
+               }
+
+               if ( is_search() ) {
+
+                       echo $before . '<a href="' . get_post_type_archive_link( 'product' ) . '">' . $_name . '</a>' . $delimiter . __( 'Search results for &ldquo;', 'woocommerce' ) . get_search_query() . '&rdquo;' . $after;
+
+               } elseif ( is_paged() ) {
+
+                       echo $before . '<a href="' . get_post_type_archive_link( 'product' ) . '">' . $_name . '</a>' . $after;
+
+               } else {
+
+                       echo $before . $_name . $after;
+
+               }
+
+       } elseif ( is_single() && ! is_attachment() ) {
+
+               if ( 'product' == get_post_type() ) {
+
+                       echo $prepend;
+
+                       if ( $terms = wc_get_product_terms( $post->ID, 'product_cat', array( 'orderby' => 'parent', 'order' => 'DESC' ) ) ) {
+                               $main_term = $terms[0];
+                               $ancestors = get_ancestors( $main_term->term_id, 'product_cat' );
+                               $ancestors = array_reverse( $ancestors );
+
+                               foreach ( $ancestors as $ancestor ) {
+                                       $ancestor = get_term( $ancestor, 'product_cat' );
+
+                                       if ( ! is_wp_error( $ancestor ) && $ancestor ) {
+                                               echo $before . '<a href="' . get_term_link( $ancestor ) . '">' . $ancestor->name . '</a>' . $after . $delimiter;
+                                       }
+                               }
+
+                               echo $before . '<a href="' . get_term_link( $main_term ) . '">' . $main_term->name . '</a>' . $after . $delimiter;
+
+                       }
+
+                       echo $before . get_the_title() . $after;
+
+               } elseif ( 'post' != get_post_type() ) {
+
+                       $post_type = get_post_type_object( get_post_type() );
+                       $slug = $post_type->rewrite;
+                       echo $before . '<a href="' . get_post_type_archive_link( get_post_type() ) . '">' . $post_type->labels->singular_name . '</a>' . $after . $delimiter;
+                       echo $before . get_the_title() . $after;
+
+               } else {
+
+                       $cat = current( get_the_category() );
+                       if ( ( $parents = get_category_parents( $cat, TRUE, $after . $delimiter . $before ) ) && ! is_wp_error( $parents ) ) {
+                               echo $before . rtrim( $parents, $after . $delimiter . $before ) . $after . $delimiter;
+                       }
+                       echo $before . get_the_title() . $after;
+
+               }
+
+       } elseif ( is_404() ) {
+
+               echo $before . __( 'Error 404', 'woocommerce' ) . $after;
+
+       } elseif ( ! is_single() && ! is_page() && get_post_type() != 'post' ) {
+
+               $post_type = get_post_type_object( get_post_type() );
+
+               if ( $post_type ) {
+                       echo $before . $post_type->labels->singular_name . $after;
+               }
+
+       } elseif ( is_attachment() ) {
+
+               $parent = get_post( $post->post_parent );
+               $cat = get_the_category( $parent->ID );
+               $cat = $cat[0];
+               if ( ( $parents = get_category_parents( $cat, TRUE, $after . $delimiter . $before ) ) && ! is_wp_error( $parents ) ) {
+                       echo $before . rtrim( $parents, $after . $delimiter . $before ) . $after . $delimiter;
+               }
+               echo $before . '<a href="' . get_permalink( $parent ) . '">' . $parent->post_title . '</a>' . $after . $delimiter;
+               echo $before . get_the_title() . $after;
+
+       } elseif ( is_page() && ! $post->post_parent ) {
+
+               echo $before . get_the_title() . $after;
+
+       } elseif ( is_page() && $post->post_parent ) {
+
+               $parent_id  = $post->post_parent;
+               $breadcrumbs = array();
+
+               while ( $parent_id ) {
+                       $page          = get_post( $parent_id );
+                       $breadcrumbs[] = '<a href="' . get_permalink( $page->ID ) . '">' . get_the_title( $page->ID ) . '</a>';
+                       $parent_id     = $page->post_parent;
+               }
+
+               $breadcrumbs = array_reverse( $breadcrumbs );
+
+               foreach ( $breadcrumbs as $crumb ) {
+                       echo $before . $crumb . $after . $delimiter;
+               }
+
+               echo $before . get_the_title() . $after;
+
+       } elseif ( is_search() ) {
+
+               echo $before . __( 'Search results for &ldquo;', 'woocommerce' ) . get_search_query() . '&rdquo;' . $after;
+
+       } elseif ( is_tag() ) {
+
+                       echo $before . __( 'Posts tagged &ldquo;', 'woocommerce' ) . single_tag_title( '', false ) . '&rdquo;' . $after;
+
+       } elseif ( is_author() ) {
+
+               $userdata = get_userdata( $author );
+               echo $before . __( 'Author:', 'woocommerce' ) . ' ' . $userdata->display_name . $after;
+
+       }
+
+       if ( get_query_var( 'paged' ) ) {
+               echo ' (' . __( 'Page', 'woocommerce' ) . ' ' . get_query_var( 'paged' ) . ')';
+       }
+
+       echo $wrap_after;
+
+}
diff --git a/woocommerce/global/form-login.php b/woocommerce/global/form-login.php
new file mode 100644 (file)
index 0000000..2cce68d
--- /dev/null
@@ -0,0 +1,49 @@
+<?php
+/**
+ * Login form
+ *
+ * @author             WooThemes
+ * @package    WooCommerce/Templates
+ * @version     2.1.0
+ */
+
+if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
+
+if ( is_user_logged_in() ) 
+       return;
+?>
+<form method="post" class="login" <?php if ( $hidden ) echo 'style="display:none;"'; ?>>
+
+       <?php do_action( 'woocommerce_login_form_start' ); ?>
+
+       <?php if ( $message ) echo wpautop( wptexturize( $message ) ); ?>
+
+       <p class="form-row form-row-first">
+               <label for="username"><?php _e( 'Username or email', 'woocommerce' ); ?> <span class="required">*</span></label>
+               <input type="text" class="input-text" name="username" id="username" />
+       </p>
+       <p class="form-row form-row-last">
+               <label for="password"><?php _e( 'Password', 'woocommerce' ); ?> <span class="required">*</span></label>
+               <input class="input-text" type="password" name="password" id="password" />
+       </p>
+       <div class="clear"></div>
+
+       <?php do_action( 'woocommerce_login_form' ); ?>
+
+       <p class="form-row">
+               <?php wp_nonce_field( 'woocommerce-login' ); ?>
+               <input type="submit" class="button" name="login" value="<?php _e( 'Login', 'woocommerce' ); ?>" />
+               <input type="hidden" name="redirect" value="<?php echo esc_url( $redirect ) ?>" />
+               <label for="rememberme" class="inline">
+                       <input name="rememberme" type="checkbox" id="rememberme" value="forever" /> <?php _e( 'Remember me', 'woocommerce' ); ?>
+               </label>
+       </p>
+       <p class="lost_password">
+               <a href="<?php echo esc_url( wc_lostpassword_url() ); ?>"><?php _e( 'Lost your password?', 'woocommerce' ); ?></a>
+       </p>
+
+       <div class="clear"></div>
+
+       <?php do_action( 'woocommerce_login_form_end' ); ?>
+
+</form>
\ No newline at end of file
diff --git a/woocommerce/global/quantity-input.php b/woocommerce/global/quantity-input.php
new file mode 100644 (file)
index 0000000..add5e76
--- /dev/null
@@ -0,0 +1,12 @@
+<?php
+/**
+ * Product quantity inputs
+ *
+ * @author             WooThemes
+ * @package    WooCommerce/Templates
+ * @version     2.1.0
+ */
+
+if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
+?>
+<div class="quantity"><input type="number" step="<?php echo esc_attr( $step ); ?>" <?php if ( is_numeric( $min_value ) ) : ?>min="<?php echo esc_attr( $min_value ); ?>"<?php endif; ?> <?php if ( is_numeric( $max_value ) ) : ?>max="<?php echo esc_attr( $max_value ); ?>"<?php endif; ?> name="<?php echo esc_attr( $input_name ); ?>" value="<?php echo esc_attr( $input_value ); ?>" title="<?php _ex( 'Qty', 'Product quantity input tooltip', 'woocommerce' ) ?>" class="input-text qty text" size="4" /></div>
\ No newline at end of file
diff --git a/woocommerce/global/sidebar.php b/woocommerce/global/sidebar.php
new file mode 100644 (file)
index 0000000..8f70c8b
--- /dev/null
@@ -0,0 +1,12 @@
+<?php
+/**
+ * Sidebar
+ *
+ * @author             WooThemes
+ * @package    WooCommerce/Templates
+ * @version     1.6.4
+ */
+
+if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
+
+get_sidebar( 'shop' ); ?>
\ No newline at end of file
diff --git a/woocommerce/global/wrapper-end.php b/woocommerce/global/wrapper-end.php
new file mode 100644 (file)
index 0000000..8786145
--- /dev/null
@@ -0,0 +1,31 @@
+<?php
+/**
+ * Content wrappers
+ *
+ * @author             WooThemes
+ * @package    WooCommerce/Templates
+ * @version     1.6.4
+ */
+
+if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
+
+$template = get_option( 'template' );
+
+switch( $template ) {
+       case 'twentyeleven' :
+               echo '</div></div>';
+               break;
+       case 'twentytwelve' :
+               echo '</div></div>';
+               break;
+       case 'twentythirteen' :
+               echo '</div></div>';
+               break;
+       case 'twentyfourteen' :
+               echo '</div></div></div>';
+               get_sidebar( 'content' );
+               break;
+       default :
+               echo '</div></div>';
+               break;
+}
\ No newline at end of file
diff --git a/woocommerce/global/wrapper-start.php b/woocommerce/global/wrapper-start.php
new file mode 100644 (file)
index 0000000..992d3a3
--- /dev/null
@@ -0,0 +1,30 @@
+<?php
+/**
+ * Content wrappers
+ *
+ * @author             WooThemes
+ * @package    WooCommerce/Templates
+ * @version     1.6.4
+ */
+
+if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
+
+$template = get_option( 'template' );
+
+switch( $template ) {
+       case 'twentyeleven' :
+               echo '<div id="primary"><div id="content" role="main">';
+               break;
+       case 'twentytwelve' :
+               echo '<div id="primary" class="site-content"><div id="content" role="main">';
+               break;
+       case 'twentythirteen' :
+               echo '<div id="primary" class="site-content"><div id="content" role="main" class="entry-content twentythirteen">';
+               break;
+       case 'twentyfourteen' :
+               echo '<div id="primary" class="content-area"><div id="content" role="main" class="site-content twentyfourteen"><div class="tfwc">';
+               break;
+       default :
+               echo '<div id="container"><div id="content" role="main">';
+               break;
+}
\ No newline at end of file
diff --git a/woocommerce/loop/add-to-cart.php b/woocommerce/loop/add-to-cart.php
new file mode 100644 (file)
index 0000000..67ce1f6
--- /dev/null
@@ -0,0 +1,24 @@
+<?php
+/**
+ * Loop Add to Cart
+ *
+ * @author             WooThemes
+ * @package    WooCommerce/Templates
+ * @version     2.1.0
+ */
+
+if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
+
+global $product;
+
+echo apply_filters( 'woocommerce_loop_add_to_cart_link',
+       sprintf( '<a href="%s" rel="nofollow" data-product_id="%s" data-product_sku="%s" data-quantity="%s" class="button %s product_type_%s">%s</a>',
+               esc_url( $product->add_to_cart_url() ),
+               esc_attr( $product->id ),
+               esc_attr( $product->get_sku() ),
+               esc_attr( isset( $quantity ) ? $quantity : 1 ),
+               $product->is_purchasable() && $product->is_in_stock() ? 'add_to_cart_button' : '',
+               esc_attr( $product->product_type ),
+               esc_html( $product->add_to_cart_text() )
+       ),
+$product );
diff --git a/woocommerce/loop/loop-end.php b/woocommerce/loop/loop-end.php
new file mode 100644 (file)
index 0000000..98230fd
--- /dev/null
@@ -0,0 +1,10 @@
+<?php
+/**
+ * Product Loop End
+ *
+ * @author             WooThemes
+ * @package    WooCommerce/Templates
+ * @version     2.0.0
+ */
+?>
+</ul>
\ No newline at end of file
diff --git a/woocommerce/loop/loop-start.php b/woocommerce/loop/loop-start.php
new file mode 100644 (file)
index 0000000..b3a0cc6
--- /dev/null
@@ -0,0 +1,10 @@
+<?php
+/**
+ * Product Loop Start
+ *
+ * @author             WooThemes
+ * @package    WooCommerce/Templates
+ * @version     2.0.0
+ */
+?>
+<ul class="products row small-block-grid-1 medium-block-grid-2 large-block-grid-3">
\ No newline at end of file
diff --git a/woocommerce/loop/no-products-found.php b/woocommerce/loop/no-products-found.php
new file mode 100644 (file)
index 0000000..a66e375
--- /dev/null
@@ -0,0 +1,14 @@
+<?php
+/**
+ * Displayed when no products are found matching the current query.
+ *
+ * Override this template by copying it to yourtheme/woocommerce/loop/no-products-found.php
+ *
+ * @author             WooThemes
+ * @package    WooCommerce/Templates
+ * @version     2.0.0
+ */
+
+if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
+?>
+<p class="woocommerce-info"><?php _e( 'No products were found matching your selection.', 'woocommerce' ); ?></p>
\ No newline at end of file
diff --git a/woocommerce/loop/orderby.php b/woocommerce/loop/orderby.php
new file mode 100644 (file)
index 0000000..f40e224
--- /dev/null
@@ -0,0 +1,33 @@
+<?php
+/**
+ * Show options for ordering
+ *
+ * @author             WooThemes
+ * @package    WooCommerce/Templates
+ * @version     2.2.0
+ */
+
+if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
+?>
+<form class="woocommerce-ordering" method="get">
+       <select name="orderby" class="orderby">
+               <?php foreach ( $catalog_orderby_options as $id => $name ) : ?>
+                       <option value="<?php echo esc_attr( $id ); ?>" <?php selected( $orderby, $id ); ?>><?php echo esc_html( $name ); ?></option>
+               <?php endforeach; ?>
+       </select>
+       <?php
+               // Keep query string vars intact
+               foreach ( $_GET as $key => $val ) {
+                       if ( 'orderby' === $key || 'submit' === $key ) {
+                               continue;
+                       }
+                       if ( is_array( $val ) ) {
+                               foreach( $val as $innerVal ) {
+                                       echo '<input type="hidden" name="' . esc_attr( $key ) . '[]" value="' . esc_attr( $innerVal ) . '" />';
+                               }
+                       } else {
+                               echo '<input type="hidden" name="' . esc_attr( $key ) . '" value="' . esc_attr( $val ) . '" />';
+                       }
+               }
+       ?>
+</form>
diff --git a/woocommerce/loop/pagination.php b/woocommerce/loop/pagination.php
new file mode 100644 (file)
index 0000000..4739bf9
--- /dev/null
@@ -0,0 +1,34 @@
+<?php
+/**
+ * Pagination - Show numbered pagination for catalog pages.
+ *
+ * @author             WooThemes
+ * @package    WooCommerce/Templates
+ * @version     2.2.2
+ */
+
+if ( ! defined( 'ABSPATH' ) ) {
+       exit;
+}
+
+global $wp_query;
+
+if ( $wp_query->max_num_pages <= 1 ) {
+       return;
+}
+?>
+<nav class="woocommerce-pagination">
+       <?php
+               echo paginate_links( apply_filters( 'woocommerce_pagination_args', array(
+                       'base'         => esc_url( str_replace( 999999999, '%#%', remove_query_arg( 'add-to-cart', get_pagenum_link( 999999999, false ) ) ) ),
+                       'format'       => '',
+                       'current'      => max( 1, get_query_var( 'paged' ) ),
+                       'total'        => $wp_query->max_num_pages,
+                       'prev_text'    => '&larr;',
+                       'next_text'    => '&rarr;',
+                       'type'         => 'list',
+                       'end_size'     => 3,
+                       'mid_size'     => 3
+               ) ) );
+       ?>
+</nav>
diff --git a/woocommerce/loop/price.php b/woocommerce/loop/price.php
new file mode 100644 (file)
index 0000000..d20b3d0
--- /dev/null
@@ -0,0 +1,17 @@
+<?php
+/**
+ * Loop Price
+ *
+ * @author             WooThemes
+ * @package    WooCommerce/Templates
+ * @version     1.6.4
+ */
+
+if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
+
+global $product;
+?>
+
+<?php if ( $price_html = $product->get_price_html() ) : ?>
+       <span class="price small-24 columns"><?php echo $price_html; ?></span>
+<?php endif; ?>
\ No newline at end of file
diff --git a/woocommerce/loop/rating.php b/woocommerce/loop/rating.php
new file mode 100644 (file)
index 0000000..6a7b682
--- /dev/null
@@ -0,0 +1,20 @@
+<?php
+/**
+ * Loop Rating
+ *
+ * @author             WooThemes
+ * @package    WooCommerce/Templates
+ * @version     2.0.0
+ */
+
+if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
+
+global $product;
+
+if ( get_option( 'woocommerce_enable_review_rating' ) === 'no' )
+       return;
+?>
+
+<?php if ( $rating_html = $product->get_rating_html() ) : ?>
+       <?php echo $rating_html; ?>
+<?php endif; ?>
\ No newline at end of file
diff --git a/woocommerce/loop/result-count.php b/woocommerce/loop/result-count.php
new file mode 100644 (file)
index 0000000..5fd93ea
--- /dev/null
@@ -0,0 +1,35 @@
+<?php
+/**
+ * Result Count
+ *
+ * Shows text: Showing x - x of x results
+ *
+ * @author             WooThemes
+ * @package    WooCommerce/Templates
+ * @version     2.0.0
+ */
+
+if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
+
+global $wp_query;
+
+if ( ! woocommerce_products_will_display() )
+       return;
+?>
+<p class="woocommerce-result-count">
+       <?php
+       $paged    = max( 1, $wp_query->get( 'paged' ) );
+       $per_page = $wp_query->get( 'posts_per_page' );
+       $total    = $wp_query->found_posts;
+       $first    = ( $per_page * $paged ) - $per_page + 1;
+       $last     = min( $total, $wp_query->get( 'posts_per_page' ) * $paged );
+
+       if ( 1 == $total ) {
+               _e( 'Showing the single result', 'woocommerce' );
+       } elseif ( $total <= $per_page || -1 == $per_page ) {
+               printf( __( 'Showing all %d results', 'woocommerce' ), $total );
+       } else {
+               printf( _x( 'Showing %1$d&ndash;%2$d of %3$d results', '%1$d = first, %2$d = last, %3$d = total', 'woocommerce' ), $first, $last, $total );
+       }
+       ?>
+</p>
diff --git a/woocommerce/loop/sale-flash.php b/woocommerce/loop/sale-flash.php
new file mode 100644 (file)
index 0000000..f197f2b
--- /dev/null
@@ -0,0 +1,18 @@
+<?php
+/**
+ * Product loop sale flash
+ *
+ * @author             WooThemes
+ * @package    WooCommerce/Templates
+ * @version     1.6.4
+ */
+
+if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
+
+global $post, $product;
+?>
+<?php if ( $product->is_on_sale() ) : ?>
+
+       <?php echo apply_filters( 'woocommerce_sale_flash', '<span class="onsale">' . __( 'Sale!', 'woocommerce' ) . '</span>', $post, $product ); ?>
+
+<?php endif; ?>
\ No newline at end of file
diff --git a/woocommerce/myaccount/form-add-payment-method.php b/woocommerce/myaccount/form-add-payment-method.php
new file mode 100644 (file)
index 0000000..b5f2104
--- /dev/null
@@ -0,0 +1,54 @@
+<?php
+/**
+ * Add payment method form form
+ *
+ * @author             WooThemes
+ * @package    WooCommerce/Templates
+ * @version     2.1
+ */
+
+if ( ! defined( 'ABSPATH' ) ) {
+    exit;
+}
+?>
+<form id="add_payment_method" method="post">
+       <div id="payment">
+               <ul class="payment_methods methods">
+                       <?php
+                               if ( $available_gateways = WC()->payment_gateways->get_available_payment_gateways() ) {
+                                       // Chosen Method
+                                       if ( sizeof( $available_gateways ) )
+                                               current( $available_gateways )->set_current();
+
+                                       foreach ( $available_gateways as $gateway ) {
+                                               ?>
+                                               <li class="payment_method_<?php echo $gateway->id; ?>">
+                                                       <input id="payment_method_<?php echo $gateway->id; ?>" type="radio" class="input-radio" name="payment_method" value="<?php echo esc_attr( $gateway->id ); ?>" <?php checked( $gateway->chosen, true ); ?> />
+                                                       <label for="payment_method_<?php echo $gateway->id; ?>"><?php echo $gateway->get_title(); ?> <?php echo $gateway->get_icon(); ?></label>
+                                                       <?php
+                                                               if ( $gateway->has_fields() || $gateway->get_description() ) {
+                                                                       echo '<div class="payment_box payment_method_' . $gateway->id . '" style="display:none;">';
+                                                                       $gateway->payment_fields();
+                                                                       echo '</div>';
+                                                               }
+                                                       ?>
+                                               </li>
+                                               <?php
+                                       }
+                               } else {
+
+                                       echo '<p>' . __( 'Sorry, it seems that there are no payment methods which support adding a new payment method. Please contact us if you require assistance or wish to make alternate arrangements.', 'woocommerce' ) . '</p>';
+
+                               }
+                       ?>
+               </ul>
+
+               <div class="form-row">
+                       <?php wp_nonce_field( 'woocommerce-add-payment-method' ); ?>
+                       <input type="submit" class="button alt" id="place_order" value="<?php _e( 'Add Payment Method', 'woocommerce' ); ?>" />
+                       <input type="hidden" name="woocommerce_add_payment_method" value="1" />
+               </div>
+
+       </div>
+
+</form>
diff --git a/woocommerce/myaccount/form-edit-account.php b/woocommerce/myaccount/form-edit-account.php
new file mode 100644 (file)
index 0000000..21c3ab2
--- /dev/null
@@ -0,0 +1,65 @@
+<?php
+/**
+ * Edit account form
+ *
+ * @author             WooThemes
+ * @package    WooCommerce/Templates
+ * @version     2.2.7
+ */
+
+if ( ! defined( 'ABSPATH' ) ) {
+       exit; // Exit if accessed directly
+}
+
+?>
+
+<?php wc_print_notices(); ?>
+
+<form action="" method="post">
+
+       <?php do_action( 'woocommerce_edit_account_form_start' ); ?>
+
+       <p class="form-row form-row-first">
+               <label for="account_first_name"><?php _e( 'First name', 'woocommerce' ); ?> <span class="required">*</span></label>
+               <input type="text" class="input-text" name="account_first_name" id="account_first_name" value="<?php echo esc_attr( $user->first_name ); ?>" />
+       </p>
+       <p class="form-row form-row-last">
+               <label for="account_last_name"><?php _e( 'Last name', 'woocommerce' ); ?> <span class="required">*</span></label>
+               <input type="text" class="input-text" name="account_last_name" id="account_last_name" value="<?php echo esc_attr( $user->last_name ); ?>" />
+       </p>
+       <div class="clear"></div>
+
+       <p class="form-row form-row-wide">
+               <label for="account_email"><?php _e( 'Email address', 'woocommerce' ); ?> <span class="required">*</span></label>
+               <input type="email" class="input-text" name="account_email" id="account_email" value="<?php echo esc_attr( $user->user_email ); ?>" />
+       </p>
+
+       <fieldset>
+               <legend><?php _e( 'Password Change', 'woocommerce' ); ?></legend>
+
+               <p class="form-row form-row-wide">
+                       <label for="password_current"><?php _e( 'Current Password (leave blank to leave unchanged)', 'woocommerce' ); ?></label>
+                       <input type="password" class="input-text" name="password_current" id="password_current" />
+               </p>
+               <p class="form-row form-row-wide">
+                       <label for="password_1"><?php _e( 'New Password (leave blank to leave unchanged)', 'woocommerce' ); ?></label>
+                       <input type="password" class="input-text" name="password_1" id="password_1" />
+               </p>
+               <p class="form-row form-row-wide">
+                       <label for="password_2"><?php _e( 'Confirm New Password', 'woocommerce' ); ?></label>
+                       <input type="password" class="input-text" name="password_2" id="password_2" />
+               </p>
+       </fieldset>
+       <div class="clear"></div>
+
+       <?php do_action( 'woocommerce_edit_account_form' ); ?>
+
+       <p>
+               <?php wp_nonce_field( 'save_account_details' ); ?>
+               <input type="submit" class="button" name="save_account_details" value="<?php _e( 'Save changes', 'woocommerce' ); ?>" />
+               <input type="hidden" name="action" value="save_account_details" />
+       </p>
+
+       <?php do_action( 'woocommerce_edit_account_form_end' ); ?>
+
+</form>
diff --git a/woocommerce/myaccount/form-edit-address.php b/woocommerce/myaccount/form-edit-address.php
new file mode 100644 (file)
index 0000000..4cbfc6b
--- /dev/null
@@ -0,0 +1,51 @@
+<?php
+/**
+ * Edit address form
+ *
+ * @author      WooThemes
+ * @package     WooCommerce/Templates
+ * @version     2.1.0
+ */
+
+if ( ! defined( 'ABSPATH' ) ) {
+       exit;
+}
+
+global $current_user;
+
+$page_title = ( $load_address === 'billing' ) ? __( 'Billing Address', 'woocommerce' ) : __( 'Shipping Address', 'woocommerce' );
+
+get_currentuserinfo();
+?>
+
+<?php wc_print_notices(); ?>
+
+<?php if ( ! $load_address ) : ?>
+
+       <?php wc_get_template( 'myaccount/my-address.php' ); ?>
+
+<?php else : ?>
+
+       <form method="post">
+
+               <h3><?php echo apply_filters( 'woocommerce_my_account_edit_address_title', $page_title ); ?></h3>
+
+               <?php do_action( "woocommerce_before_edit_address_form_{$load_address}" ); ?>
+
+               <?php foreach ( $address as $key => $field ) : ?>
+
+                       <?php woocommerce_form_field( $key, $field, ! empty( $_POST[ $key ] ) ? wc_clean( $_POST[ $key ] ) : $field['value'] ); ?>
+
+               <?php endforeach; ?>
+               
+               <?php do_action( "woocommerce_after_edit_address_form_{$load_address}" ); ?>
+
+               <p>
+                       <input type="submit" class="button" name="save_address" value="<?php _e( 'Save Address', 'woocommerce' ); ?>" />
+                       <?php wp_nonce_field( 'woocommerce-edit_address' ); ?>
+                       <input type="hidden" name="action" value="edit_address" />
+               </p>
+
+       </form>
+
+<?php endif; ?>
diff --git a/woocommerce/myaccount/form-login.php b/woocommerce/myaccount/form-login.php
new file mode 100644 (file)
index 0000000..3706f16
--- /dev/null
@@ -0,0 +1,114 @@
+<?php
+/**
+ * Login Form
+ *
+ * @author             WooThemes
+ * @package    WooCommerce/Templates
+ * @version     2.2.6
+ */
+
+if ( ! defined( 'ABSPATH' ) ) {
+    exit;
+}
+?>
+
+<?php wc_print_notices(); ?>
+
+<?php do_action( 'woocommerce_before_customer_login_form' ); ?>
+
+<?php if ( get_option( 'woocommerce_enable_myaccount_registration' ) === 'yes' ) : ?>
+
+<div class="col2-set" id="customer_login">
+
+       <div class="col-1">
+
+<?php endif; ?>
+
+               <h2><?php _e( 'Login', 'woocommerce' ); ?></h2>
+
+               <form method="post" class="login">
+
+                       <?php do_action( 'woocommerce_login_form_start' ); ?>
+
+                       <p class="form-row form-row-wide">
+                               <label for="username"><?php _e( 'Username or email address', 'woocommerce' ); ?> <span class="required">*</span></label>
+                               <input type="text" class="input-text" name="username" id="username" value="<?php if ( ! empty( $_POST['username'] ) ) echo esc_attr( $_POST['username'] ); ?>" />
+                       </p>
+                       <p class="form-row form-row-wide">
+                               <label for="password"><?php _e( 'Password', 'woocommerce' ); ?> <span class="required">*</span></label>
+                               <input class="input-text" type="password" name="password" id="password" />
+                       </p>
+
+                       <?php do_action( 'woocommerce_login_form' ); ?>
+
+                       <p class="form-row">
+                               <?php wp_nonce_field( 'woocommerce-login' ); ?>
+                               <input type="submit" class="button" name="login" value="<?php _e( 'Login', 'woocommerce' ); ?>" /> 
+                               <label for="rememberme" class="inline">
+                                       <input name="rememberme" type="checkbox" id="rememberme" value="forever" /> <?php _e( 'Remember me', 'woocommerce' ); ?>
+                               </label>
+                       </p>
+                       <p class="lost_password">
+                               <a href="<?php echo esc_url( wc_lostpassword_url() ); ?>"><?php _e( 'Lost your password?', 'woocommerce' ); ?></a>
+                       </p>
+
+                       <?php do_action( 'woocommerce_login_form_end' ); ?>
+
+               </form>
+
+<?php if ( get_option( 'woocommerce_enable_myaccount_registration' ) === 'yes' ) : ?>
+
+       </div>
+
+       <div class="col-2">
+
+               <h2><?php _e( 'Register', 'woocommerce' ); ?></h2>
+
+               <form method="post" class="register">
+
+                       <?php do_action( 'woocommerce_register_form_start' ); ?>
+
+                       <?php if ( 'no' === get_option( 'woocommerce_registration_generate_username' ) ) : ?>
+
+                               <p class="form-row form-row-wide">
+                                       <label for="reg_username"><?php _e( 'Username', 'woocommerce' ); ?> <span class="required">*</span></label>
+                                       <input type="text" class="input-text" name="username" id="reg_username" value="<?php if ( ! empty( $_POST['username'] ) ) echo esc_attr( $_POST['username'] ); ?>" />
+                               </p>
+
+                       <?php endif; ?>
+
+                       <p class="form-row form-row-wide">
+                               <label for="reg_email"><?php _e( 'Email address', 'woocommerce' ); ?> <span class="required">*</span></label>
+                               <input type="email" class="input-text" name="email" id="reg_email" value="<?php if ( ! empty( $_POST['email'] ) ) echo esc_attr( $_POST['email'] ); ?>" />
+                       </p>
+
+                       <?php if ( 'no' === get_option( 'woocommerce_registration_generate_password' ) ) : ?>
+       
+                               <p class="form-row form-row-wide">
+                                       <label for="reg_password"><?php _e( 'Password', 'woocommerce' ); ?> <span class="required">*</span></label>
+                                       <input type="password" class="input-text" name="password" id="reg_password" />
+                               </p>
+
+                       <?php endif; ?>
+
+                       <!-- Spam Trap -->
+                       <div style="<?php echo ( ( is_rtl() ) ? 'right' : 'left' ); ?>: -999em; position: absolute;"><label for="trap"><?php _e( 'Anti-spam', 'woocommerce' ); ?></label><input type="text" name="email_2" id="trap" tabindex="-1" /></div>
+
+                       <?php do_action( 'woocommerce_register_form' ); ?>
+                       <?php do_action( 'register_form' ); ?>
+
+                       <p class="form-row">
+                               <?php wp_nonce_field( 'woocommerce-register' ); ?>
+                               <input type="submit" class="button" name="register" value="<?php _e( 'Register', 'woocommerce' ); ?>" />
+                       </p>
+
+                       <?php do_action( 'woocommerce_register_form_end' ); ?>
+
+               </form>
+
+       </div>
+
+</div>
+<?php endif; ?>
+
+<?php do_action( 'woocommerce_after_customer_login_form' ); ?>
diff --git a/woocommerce/myaccount/form-lost-password.php b/woocommerce/myaccount/form-lost-password.php
new file mode 100644 (file)
index 0000000..7362398
--- /dev/null
@@ -0,0 +1,48 @@
+<?php
+/**
+ * Lost password form
+ *
+ * @author             WooThemes
+ * @package    WooCommerce/Templates
+ * @version     2.0.0
+ */
+
+if ( ! defined( 'ABSPATH' ) ) {
+    exit;
+}
+?>
+
+<?php wc_print_notices(); ?>
+
+<form method="post" class="lost_reset_password">
+
+       <?php if( 'lost_password' == $args['form'] ) : ?>
+
+        <p><?php echo apply_filters( 'woocommerce_lost_password_message', __( 'Lost your password? Please enter your username or email address. You will receive a link to create a new password via email.', 'woocommerce' ) ); ?></p>
+
+        <p class="form-row form-row-first"><label for="user_login"><?php _e( 'Username or email', 'woocommerce' ); ?></label> <input class="input-text" type="text" name="user_login" id="user_login" /></p>
+
+       <?php else : ?>
+
+        <p><?php echo apply_filters( 'woocommerce_reset_password_message', __( 'Enter a new password below.', 'woocommerce') ); ?></p>
+
+        <p class="form-row form-row-first">
+            <label for="password_1"><?php _e( 'New password', 'woocommerce' ); ?> <span class="required">*</span></label>
+            <input type="password" class="input-text" name="password_1" id="password_1" />
+        </p>
+        <p class="form-row form-row-last">
+            <label for="password_2"><?php _e( 'Re-enter new password', 'woocommerce' ); ?> <span class="required">*</span></label>
+            <input type="password" class="input-text" name="password_2" id="password_2" />
+        </p>
+
+        <input type="hidden" name="reset_key" value="<?php echo isset( $args['key'] ) ? $args['key'] : ''; ?>" />
+        <input type="hidden" name="reset_login" value="<?php echo isset( $args['login'] ) ? $args['login'] : ''; ?>" />
+
+    <?php endif; ?>
+
+    <div class="clear"></div>
+
+    <p class="form-row"><input type="submit" class="button" name="wc_reset_password" value="<?php echo 'lost_password' == $args['form'] ? __( 'Reset Password', 'woocommerce' ) : __( 'Save', 'woocommerce' ); ?>" /></p>
+       <?php wp_nonce_field( $args['form'] ); ?>
+
+</form>
\ No newline at end of file
diff --git a/woocommerce/myaccount/my-account.php b/woocommerce/myaccount/my-account.php
new file mode 100644 (file)
index 0000000..148398d
--- /dev/null
@@ -0,0 +1,38 @@
+<?php
+/**
+ * My Account page
+ *
+ * @author             WooThemes
+ * @package    WooCommerce/Templates
+ * @version     2.0.0
+ */
+
+if ( ! defined( 'ABSPATH' ) ) {
+    exit;
+}
+
+wc_print_notices(); ?>
+
+<p class="myaccount_user">
+       <?php
+       printf(
+               __( 'Hello <strong>%1$s</strong> (not %1$s? <a href="%2$s">Sign out</a>).', 'woocommerce' ) . ' ',
+               $current_user->display_name,
+               wp_logout_url( get_permalink( wc_get_page_id( 'myaccount' ) ) )
+       );
+
+       printf( __( 'From your account dashboard you can view your recent orders, manage your shipping and billing addresses and <a href="%s">edit your password and account details</a>.', 'woocommerce' ),
+               wc_customer_edit_account_url()
+       );
+       ?>
+</p>
+
+<?php do_action( 'woocommerce_before_my_account' ); ?>
+
+<?php wc_get_template( 'myaccount/my-downloads.php' ); ?>
+
+<?php wc_get_template( 'myaccount/my-orders.php', array( 'order_count' => $order_count ) ); ?>
+
+<?php wc_get_template( 'myaccount/my-address.php' ); ?>
+
+<?php do_action( 'woocommerce_after_my_account' ); ?>
diff --git a/woocommerce/myaccount/my-address.php b/woocommerce/myaccount/my-address.php
new file mode 100644 (file)
index 0000000..653a65b
--- /dev/null
@@ -0,0 +1,73 @@
+<?php
+/**
+ * My Addresses
+ *
+ * @author             WooThemes
+ * @package    WooCommerce/Templates
+ * @version     2.2.0
+ */
+
+if ( ! defined( 'ABSPATH' ) ) {
+    exit;
+}
+
+$customer_id = get_current_user_id();
+
+if ( ! wc_ship_to_billing_address_only() && get_option( 'woocommerce_calc_shipping' ) !== 'no' ) {
+       $page_title = apply_filters( 'woocommerce_my_account_my_address_title', __( 'My Addresses', 'woocommerce' ) );
+       $get_addresses    = apply_filters( 'woocommerce_my_account_get_addresses', array(
+               'billing' => __( 'Billing Address', 'woocommerce' ),
+               'shipping' => __( 'Shipping Address', 'woocommerce' )
+       ), $customer_id );
+} else {
+       $page_title = apply_filters( 'woocommerce_my_account_my_address_title', __( 'My Address', 'woocommerce' ) );
+       $get_addresses    = apply_filters( 'woocommerce_my_account_get_addresses', array(
+               'billing' =>  __( 'Billing Address', 'woocommerce' )
+       ), $customer_id );
+}
+
+$col = 1;
+?>
+
+<h2><?php echo $page_title; ?></h2>
+
+<p class="myaccount_address">
+       <?php echo apply_filters( 'woocommerce_my_account_my_address_description', __( 'The following addresses will be used on the checkout page by default.', 'woocommerce' ) ); ?>
+</p>
+
+<?php if ( ! wc_ship_to_billing_address_only() && get_option( 'woocommerce_calc_shipping' ) !== 'no' ) echo '<div class="col2-set addresses">'; ?>
+
+<?php foreach ( $get_addresses as $name => $title ) : ?>
+
+       <div class="col-<?php echo ( ( $col = $col * -1 ) < 0 ) ? 1 : 2; ?> address">
+               <header class="title">
+                       <h3><?php echo $title; ?></h3>
+                       <a href="<?php echo wc_get_endpoint_url( 'edit-address', $name ); ?>" class="edit"><?php _e( 'Edit', 'woocommerce' ); ?></a>
+               </header>
+               <address>
+                       <?php
+                               $address = apply_filters( 'woocommerce_my_account_my_address_formatted_address', array(
+                                       'first_name'  => get_user_meta( $customer_id, $name . '_first_name', true ),
+                                       'last_name'   => get_user_meta( $customer_id, $name . '_last_name', true ),
+                                       'company'     => get_user_meta( $customer_id, $name . '_company', true ),
+                                       'address_1'   => get_user_meta( $customer_id, $name . '_address_1', true ),
+                                       'address_2'   => get_user_meta( $customer_id, $name . '_address_2', true ),
+                                       'city'        => get_user_meta( $customer_id, $name . '_city', true ),
+                                       'state'       => get_user_meta( $customer_id, $name . '_state', true ),
+                                       'postcode'    => get_user_meta( $customer_id, $name . '_postcode', true ),
+                                       'country'     => get_user_meta( $customer_id, $name . '_country', true )
+                               ), $customer_id, $name );
+
+                               $formatted_address = WC()->countries->get_formatted_address( $address );
+
+                               if ( ! $formatted_address )
+                                       _e( 'You have not set up this type of address yet.', 'woocommerce' );
+                               else
+                                       echo $formatted_address;
+                       ?>
+               </address>
+       </div>
+
+<?php endforeach; ?>
+
+<?php if ( ! wc_ship_to_billing_address_only() && get_option( 'woocommerce_calc_shipping' ) !== 'no' ) echo '</div>'; ?>
diff --git a/woocommerce/myaccount/my-downloads.php b/woocommerce/myaccount/my-downloads.php
new file mode 100644 (file)
index 0000000..8295a74
--- /dev/null
@@ -0,0 +1,41 @@
+<?php
+/**
+ * My Orders
+ *
+ * Shows recent orders on the account page
+ *
+ * @author             WooThemes
+ * @package    WooCommerce/Templates
+ * @version     2.0.0
+ */
+
+if ( ! defined( 'ABSPATH' ) ) {
+    exit;
+}
+
+if ( $downloads = WC()->customer->get_downloadable_products() ) : ?>
+
+       <?php do_action( 'woocommerce_before_available_downloads' ); ?>
+
+       <h2><?php echo apply_filters( 'woocommerce_my_account_my_downloads_title', __( 'Available downloads', 'woocommerce' ) ); ?></h2>
+
+       <ul class="digital-downloads">
+               <?php foreach ( $downloads as $download ) : ?>
+                       <li>
+                               <?php
+                                       do_action( 'woocommerce_available_download_start', $download );
+
+                                       if ( is_numeric( $download['downloads_remaining'] ) )
+                                               echo apply_filters( 'woocommerce_available_download_count', '<span class="count">' . sprintf( _n( '%s download remaining', '%s downloads remaining', $download['downloads_remaining'], 'woocommerce' ), $download['downloads_remaining'] ) . '</span> ', $download );
+
+                                       echo apply_filters( 'woocommerce_available_download_link', '<a href="' . esc_url( $download['download_url'] ) . '">' . $download['download_name'] . '</a>', $download );
+
+                                       do_action( 'woocommerce_available_download_end', $download );
+                               ?>
+                       </li>
+               <?php endforeach; ?>
+       </ul>
+
+       <?php do_action( 'woocommerce_after_available_downloads' ); ?>
+
+<?php endif; ?>
\ No newline at end of file
diff --git a/woocommerce/myaccount/my-orders.php b/woocommerce/myaccount/my-orders.php
new file mode 100644 (file)
index 0000000..4639077
--- /dev/null
@@ -0,0 +1,99 @@
+<?php
+/**
+ * My Orders
+ *
+ * Shows recent orders on the account page
+ *
+ * @author             WooThemes
+ * @package    WooCommerce/Templates
+ * @version     2.2.0
+ */
+
+if ( ! defined( 'ABSPATH' ) ) {
+    exit;
+}
+
+$customer_orders = get_posts( apply_filters( 'woocommerce_my_account_my_orders_query', array(
+       'numberposts' => $order_count,
+       'meta_key'    => '_customer_user',
+       'meta_value'  => get_current_user_id(),
+       'post_type'   => wc_get_order_types( 'view-orders' ),
+       'post_status' => array_keys( wc_get_order_statuses() )
+) ) );
+
+if ( $customer_orders ) : ?>
+
+       <h2><?php echo apply_filters( 'woocommerce_my_account_my_orders_title', __( 'Recent Orders', 'woocommerce' ) ); ?></h2>
+
+       <table class="shop_table my_account_orders">
+
+               <thead>
+                       <tr>
+                               <th class="order-number"><span class="nobr"><?php _e( 'Order', 'woocommerce' ); ?></span></th>
+                               <th class="order-date"><span class="nobr"><?php _e( 'Date', 'woocommerce' ); ?></span></th>
+                               <th class="order-status"><span class="nobr"><?php _e( 'Status', 'woocommerce' ); ?></span></th>
+                               <th class="order-total"><span class="nobr"><?php _e( 'Total', 'woocommerce' ); ?></span></th>
+                               <th class="order-actions">&nbsp;</th>
+                       </tr>
+               </thead>
+
+               <tbody><?php
+                       foreach ( $customer_orders as $customer_order ) {
+                               $order      = wc_get_order();
+                               $order->populate( $customer_order );
+                               $item_count = $order->get_item_count();
+
+                               ?><tr class="order">
+                                       <td class="order-number">
+                                               <a href="<?php echo $order->get_view_order_url(); ?>">
+                                                       <?php echo $order->get_order_number(); ?>
+                                               </a>
+                                       </td>
+                                       <td class="order-date">
+                                               <time datetime="<?php echo date( 'Y-m-d', strtotime( $order->order_date ) ); ?>" title="<?php echo esc_attr( strtotime( $order->order_date ) ); ?>"><?php echo date_i18n( get_option( 'date_format' ), strtotime( $order->order_date ) ); ?></time>
+                                       </td>
+                                       <td class="order-status" style="text-align:left; white-space:nowrap;">
+                                               <?php echo wc_get_order_status_name( $order->get_status() ); ?>
+                                       </td>
+                                       <td class="order-total">
+                                               <?php echo sprintf( _n( '%s for %s item', '%s for %s items', $item_count, 'woocommerce' ), $order->get_formatted_order_total(), $item_count ); ?>
+                                       </td>
+                                       <td class="order-actions">
+                                               <?php
+                                                       $actions = array();
+
+                                                       if ( in_array( $order->get_status(), apply_filters( 'woocommerce_valid_order_statuses_for_payment', array( 'pending', 'failed' ), $order ) ) ) {
+                                                               $actions['pay'] = array(
+                                                                       'url'  => $order->get_checkout_payment_url(),
+                                                                       'name' => __( 'Pay', 'woocommerce' )
+                                                               );
+                                                       }
+
+                                                       if ( in_array( $order->get_status(), apply_filters( 'woocommerce_valid_order_statuses_for_cancel', array( 'pending', 'failed' ), $order ) ) ) {
+                                                               $actions['cancel'] = array(
+                                                                       'url'  => $order->get_cancel_order_url( get_permalink( wc_get_page_id( 'myaccount' ) ) ),
+                                                                       'name' => __( 'Cancel', 'woocommerce' )
+                                                               );
+                                                       }
+
+                                                       $actions['view'] = array(
+                                                               'url'  => $order->get_view_order_url(),
+                                                               'name' => __( 'View', 'woocommerce' )
+                                                       );
+
+                                                       $actions = apply_filters( 'woocommerce_my_account_my_orders_actions', $actions, $order );
+
+                                                       if ($actions) {
+                                                               foreach ( $actions as $key => $action ) {
+                                                                       echo '<a href="' . esc_url( $action['url'] ) . '" class="button ' . sanitize_html_class( $key ) . '">' . esc_html( $action['name'] ) . '</a>';
+                                                               }
+                                                       }
+                                               ?>
+                                       </td>
+                               </tr><?php
+                       }
+               ?></tbody>
+
+       </table>
+
+<?php endif; ?>
diff --git a/woocommerce/myaccount/view-order.php b/woocommerce/myaccount/view-order.php
new file mode 100644 (file)
index 0000000..8285a87
--- /dev/null
@@ -0,0 +1,43 @@
+<?php
+/**
+ * View Order
+ *
+ * Shows the details of a particular order on the account page
+ *
+ * @author    WooThemes
+ * @package   WooCommerce/Templates
+ * @version   2.2.0
+ */
+
+if ( ! defined( 'ABSPATH' ) ) {
+    exit;
+}
+?>
+
+<?php wc_print_notices(); ?>
+
+<p class="order-info"><?php printf( __( 'Order <mark class="order-number">%s</mark> was placed on <mark class="order-date">%s</mark> and is currently <mark class="order-status">%s</mark>.', 'woocommerce' ), $order->get_order_number(), date_i18n( get_option( 'date_format' ), strtotime( $order->order_date ) ), wc_get_order_status_name( $order->get_status() ) ); ?></p>
+
+<?php if ( $notes = $order->get_customer_order_notes() ) :
+       ?>
+       <h2><?php _e( 'Order Updates', 'woocommerce' ); ?></h2>
+       <ol class="commentlist notes">
+               <?php foreach ( $notes as $note ) : ?>
+               <li class="comment note">
+                       <div class="comment_container">
+                               <div class="comment-text">
+                                       <p class="meta"><?php echo date_i18n( __( 'l jS \o\f F Y, h:ia', 'woocommerce' ), strtotime( $note->comment_date ) ); ?></p>
+                                       <div class="description">
+                                               <?php echo wpautop( wptexturize( $note->comment_content ) ); ?>
+                                       </div>
+                                       <div class="clear"></div>
+                               </div>
+                               <div class="clear"></div>
+                       </div>
+               </li>
+               <?php endforeach; ?>
+       </ol>
+       <?php
+endif;
+
+do_action( 'woocommerce_view_order', $order_id );
diff --git a/woocommerce/notices/error.php b/woocommerce/notices/error.php
new file mode 100644 (file)
index 0000000..7f02819
--- /dev/null
@@ -0,0 +1,18 @@
+<?php
+/**
+ * Show error messages
+ *
+ * @author             WooThemes
+ * @package    WooCommerce/Templates
+ * @version     1.6.4
+ */
+
+if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
+
+if ( ! $messages ) return;
+?>
+<ul class="woocommerce-error">
+       <?php foreach ( $messages as $message ) : ?>
+               <li><?php echo wp_kses_post( $message ); ?></li>
+       <?php endforeach; ?>
+</ul>
\ No newline at end of file
diff --git a/woocommerce/notices/notice.php b/woocommerce/notices/notice.php
new file mode 100644 (file)
index 0000000..2f0b386
--- /dev/null
@@ -0,0 +1,17 @@
+<?php
+/**
+ * Show messages
+ *
+ * @author             WooThemes
+ * @package    WooCommerce/Templates
+ * @version     1.6.4
+ */
+
+if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
+
+if ( ! $messages ) return;
+?>
+
+<?php foreach ( $messages as $message ) : ?>
+       <div class="woocommerce-info"><?php echo wp_kses_post( $message ); ?></div>
+<?php endforeach; ?>
\ No newline at end of file
diff --git a/woocommerce/notices/success.php b/woocommerce/notices/success.php
new file mode 100644 (file)
index 0000000..5ccbdd7
--- /dev/null
@@ -0,0 +1,17 @@
+<?php
+/**
+ * Show messages
+ *
+ * @author             WooThemes
+ * @package    WooCommerce/Templates
+ * @version     1.6.4
+ */
+
+if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
+
+if ( ! $messages ) return;
+?>
+
+<?php foreach ( $messages as $message ) : ?>
+       <div class="woocommerce-message"><?php echo wp_kses_post( $message ); ?></div>
+<?php endforeach; ?>
diff --git a/woocommerce/order/form-tracking.php b/woocommerce/order/form-tracking.php
new file mode 100644 (file)
index 0000000..95304af
--- /dev/null
@@ -0,0 +1,26 @@
+<?php
+/**
+ * Order tracking form
+ *
+ * @author             WooThemes
+ * @package    WooCommerce/Templates
+ * @version     1.6.4
+ */
+
+if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
+
+global $post;
+?>
+
+<form action="<?php echo esc_url( get_permalink( $post->ID ) ); ?>" method="post" class="track_order">
+
+       <p><?php _e( 'To track your order please enter your Order ID in the box below and press return. This was given to you on your receipt and in the confirmation email you should have received.', 'woocommerce' ); ?></p>
+
+       <p class="form-row form-row-first"><label for="orderid"><?php _e( 'Order ID', 'woocommerce' ); ?></label> <input class="input-text" type="text" name="orderid" id="orderid" placeholder="<?php _e( 'Found in your order confirmation email.', 'woocommerce' ); ?>" /></p>
+       <p class="form-row form-row-last"><label for="order_email"><?php _e( 'Billing Email', 'woocommerce' ); ?></label> <input class="input-text" type="text" name="order_email" id="order_email" placeholder="<?php _e( 'Email you used during checkout.', 'woocommerce' ); ?>" /></p>
+       <div class="clear"></div>
+
+       <p class="form-row"><input type="submit" class="button" name="track" value="<?php _e( 'Track', 'woocommerce' ); ?>" /></p>
+       <?php wp_nonce_field( 'woocommerce-order_tracking' ); ?>
+
+</form>
\ No newline at end of file
diff --git a/woocommerce/order/order-details.php b/woocommerce/order/order-details.php
new file mode 100644 (file)
index 0000000..afbc43d
--- /dev/null
@@ -0,0 +1,145 @@
+<?php
+/**
+ * Order details
+ *
+ * @author             WooThemes
+ * @package    WooCommerce/Templates
+ * @version     2.2.0
+ */
+
+if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
+
+$order = wc_get_order( $order_id );
+?>
+<h2><?php _e( 'Order Details', 'woocommerce' ); ?></h2>
+<table class="shop_table order_details">
+       <thead>
+               <tr>
+                       <th class="product-name"><?php _e( 'Product', 'woocommerce' ); ?></th>
+                       <th class="product-total"><?php _e( 'Total', 'woocommerce' ); ?></th>
+               </tr>
+       </thead>
+       <tbody>
+               <?php
+               if ( sizeof( $order->get_items() ) > 0 ) {
+
+                       foreach( $order->get_items() as $item ) {
+                               $_product     = apply_filters( 'woocommerce_order_item_product', $order->get_product_from_item( $item ), $item );
+                               $item_meta    = new WC_Order_Item_Meta( $item['item_meta'], $_product );
+
+                               ?>
+                               <tr class="<?php echo esc_attr( apply_filters( 'woocommerce_order_item_class', 'order_item', $item, $order ) ); ?>">
+                                       <td class="product-name">
+                                               <?php
+                                                       if ( $_product && ! $_product->is_visible() )
+                                                               echo apply_filters( 'woocommerce_order_item_name', $item['name'], $item );
+                                                       else
+                                                               echo apply_filters( 'woocommerce_order_item_name', sprintf( '<a href="%s">%s</a>', get_permalink( $item['product_id'] ), $item['name'] ), $item );
+
+                                                       echo apply_filters( 'woocommerce_order_item_quantity_html', ' <strong class="product-quantity">' . sprintf( '&times; %s', $item['qty'] ) . '</strong>', $item );
+
+                                                       $item_meta->display();
+
+                                                       if ( $_product && $_product->exists() && $_product->is_downloadable() && $order->is_download_permitted() ) {
+
+                                                               $download_files = $order->get_item_downloads( $item );
+                                                               $i              = 0;
+                                                               $links          = array();
+
+                                                               foreach ( $download_files as $download_id => $file ) {
+                                                                       $i++;
+
+                                                                       $links[] = '<small><a href="' . esc_url( $file['download_url'] ) . '">' . sprintf( __( 'Download file%s', 'woocommerce' ), ( count( $download_files ) > 1 ? ' ' . $i . ': ' : ': ' ) ) . esc_html( $file['name'] ) . '</a></small>';
+                                                               }
+
+                                                               echo '<br/>' . implode( '<br/>', $links );
+                                                       }
+                                               ?>
+                                       </td>
+                                       <td class="product-total">
+                                               <?php echo $order->get_formatted_line_subtotal( $item ); ?>
+                                       </td>
+                               </tr>
+                               <?php
+
+                               if ( $order->has_status( array( 'completed', 'processing' ) ) && ( $purchase_note = get_post_meta( $_product->id, '_purchase_note', true ) ) ) {
+                                       ?>
+                                       <tr class="product-purchase-note">
+                                               <td colspan="3"><?php echo wpautop( do_shortcode( wp_kses_post( $purchase_note ) ) ); ?></td>
+                                       </tr>
+                                       <?php
+                               }
+                       }
+               }
+
+               do_action( 'woocommerce_order_items_table', $order );
+               ?>
+       </tbody>
+       <tfoot>
+       <?php
+               if ( $totals = $order->get_order_item_totals() ) foreach ( $totals as $total ) :
+                       ?>
+                       <tr>
+                               <th scope="row"><?php echo $total['label']; ?></th>
+                               <td><?php echo $total['value']; ?></td>
+                       </tr>
+                       <?php
+               endforeach;
+       ?>
+       </tfoot>
+</table>
+
+<?php do_action( 'woocommerce_order_details_after_order_table', $order ); ?>
+
+<header>
+       <h2><?php _e( 'Customer details', 'woocommerce' ); ?></h2>
+</header>
+<dl class="customer_details">
+<?php
+       if ( $order->billing_email ) echo '<dt>' . __( 'Email:', 'woocommerce' ) . '</dt><dd>' . $order->billing_email . '</dd>';
+       if ( $order->billing_phone ) echo '<dt>' . __( 'Telephone:', 'woocommerce' ) . '</dt><dd>' . $order->billing_phone . '</dd>';
+
+       // Additional customer details hook
+       do_action( 'woocommerce_order_details_after_customer_details', $order );
+?>
+</dl>
+
+<?php if ( ! wc_ship_to_billing_address_only() && $order->needs_shipping_address() && get_option( 'woocommerce_calc_shipping' ) !== 'no' ) : ?>
+
+<div class="col2-set addresses">
+
+       <div class="col-1">
+
+<?php endif; ?>
+
+               <header class="title">
+                       <h3><?php _e( 'Billing Address', 'woocommerce' ); ?></h3>
+               </header>
+               <address>
+                       <?php
+                               if ( ! $order->get_formatted_billing_address() ) _e( 'N/A', 'woocommerce' ); else echo $order->get_formatted_billing_address();
+                       ?>
+               </address>
+
+<?php if ( ! wc_ship_to_billing_address_only() && $order->needs_shipping_address() && get_option( 'woocommerce_calc_shipping' ) !== 'no' ) : ?>
+
+       </div><!-- /.col-1 -->
+
+       <div class="col-2">
+
+               <header class="title">
+                       <h3><?php _e( 'Shipping Address', 'woocommerce' ); ?></h3>
+               </header>
+               <address>
+                       <?php
+                               if ( ! $order->get_formatted_shipping_address() ) _e( 'N/A', 'woocommerce' ); else echo $order->get_formatted_shipping_address();
+                       ?>
+               </address>
+
+       </div><!-- /.col-2 -->
+
+</div><!-- /.col2-set -->
+
+<?php endif; ?>
+
+<div class="clear"></div>
diff --git a/woocommerce/order/tracking.php b/woocommerce/order/tracking.php
new file mode 100644 (file)
index 0000000..728ae06
--- /dev/null
@@ -0,0 +1,42 @@
+<?php
+/**
+ * Order tracking
+ *
+ * @author             WooThemes
+ * @package    WooCommerce/Templates
+ * @version     2.2.0
+ */
+
+if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
+
+$order_status_text = sprintf( __( 'Order %s which was made %s has the status &ldquo;%s&rdquo;', 'woocommerce' ), $order->get_order_number(), human_time_diff( strtotime( $order->order_date ), current_time( 'timestamp' ) ) . ' ' . __( 'ago', 'woocommerce' ), wc_get_order_status_name( $order->get_status() ) );
+
+if ( $order->has_status( 'completed' ) ) $order_status_text .= ' ' . __( 'and was completed', 'woocommerce' ) . ' ' . human_time_diff( strtotime( $order->completed_date ), current_time( 'timestamp' ) ) . __( ' ago', 'woocommerce' );
+
+$order_status_text .= '.';
+
+echo wpautop( esc_attr( apply_filters( 'woocommerce_order_tracking_status', $order_status_text, $order ) ) );
+
+$notes = $order->get_customer_order_notes();
+
+if ( $notes ) : ?>
+       <h2><?php _e( 'Order Updates', 'woocommerce' ); ?></h2>
+       <ol class="commentlist notes">
+               <?php foreach ( $notes as $note ) : ?>
+               <li class="comment note">
+                       <div class="comment_container">
+                               <div class="comment-text">
+                                       <p class="meta"><?php echo date_i18n( __( 'l jS \o\f F Y, h:ia', 'woocommerce' ), strtotime( $note->comment_date ) ); ?></p>
+                                       <div class="description">
+                                               <?php echo wpautop( wptexturize( wp_kses_post( $note->comment_content ) ) ); ?>
+                                       </div>
+                                       <div class="clear"></div>
+                               </div>
+                               <div class="clear"></div>
+                       </div>
+               </li>
+               <?php endforeach; ?>
+       </ol>
+<?php endif; ?>
+
+<?php do_action( 'woocommerce_view_order', $order->id ); ?>
diff --git a/woocommerce/single-product-reviews.php b/woocommerce/single-product-reviews.php
new file mode 100644 (file)
index 0000000..0e351f5
--- /dev/null
@@ -0,0 +1,97 @@
+<?php
+/**
+ * Display single product reviews (comments)
+ *
+ * @author             WooThemes
+ * @package    WooCommerce/Templates
+ * @version     2.1.0
+ */
+global $product;
+
+if ( ! defined( 'ABSPATH' ) )
+       exit; // Exit if accessed directly
+
+if ( ! comments_open() )
+       return;
+?>
+<div id="reviews">
+       <div id="comments">
+               <h2><?php
+                       if ( get_option( 'woocommerce_enable_review_rating' ) === 'yes' && ( $count = $product->get_rating_count() ) )
+                               printf( _n( '%s review for %s', '%s reviews for %s', $count, 'woocommerce' ), $count, get_the_title() );
+                       else
+                               _e( 'Reviews', 'woocommerce' );
+               ?></h2>
+
+               <?php if ( have_comments() ) : ?>
+
+                       <ol class="commentlist">
+                               <?php wp_list_comments( apply_filters( 'woocommerce_product_review_list_args', array( 'callback' => 'woocommerce_comments' ) ) ); ?>
+                       </ol>
+
+                       <?php if ( get_comment_pages_count() > 1 && get_option( 'page_comments' ) ) :
+                               echo '<nav class="woocommerce-pagination">';
+                               paginate_comments_links( apply_filters( 'woocommerce_comment_pagination_args', array(
+                                       'prev_text' => '&larr;',
+                                       'next_text' => '&rarr;',
+                                       'type'      => 'list',
+                               ) ) );
+                               echo '</nav>';
+                       endif; ?>
+
+               <?php else : ?>
+
+                       <p class="woocommerce-noreviews"><?php _e( 'There are no reviews yet.', 'woocommerce' ); ?></p>
+
+               <?php endif; ?>
+       </div>
+
+       <?php if ( get_option( 'woocommerce_review_rating_verification_required' ) === 'no' || wc_customer_bought_product( '', get_current_user_id(), $product->id ) ) : ?>
+
+               <div id="review_form_wrapper">
+                       <div id="review_form">
+                               <?php
+                                       $commenter = wp_get_current_commenter();
+
+                                       $comment_form = array(
+                                               'title_reply'          => have_comments() ? __( 'Add a review', 'woocommerce' ) : __( 'Be the first to review', 'woocommerce' ) . ' &ldquo;' . get_the_title() . '&rdquo;',
+                                               'title_reply_to'       => __( 'Leave a Reply to %s', 'woocommerce' ),
+                                               'comment_notes_before' => '',
+                                               'comment_notes_after'  => '',
+                                               'fields'               => array(
+                                                       'author' => '<p class="comment-form-author">' . '<label for="author">' . __( 'Name', 'woocommerce' ) . ' <span class="required">*</span></label> ' .
+                                                                   '<input id="author" name="author" type="text" value="' . esc_attr( $commenter['comment_author'] ) . '" size="30" aria-required="true" /></p>',
+                                                       'email'  => '<p class="comment-form-email"><label for="email">' . __( 'Email', 'woocommerce' ) . ' <span class="required">*</span></label> ' .
+                                                                   '<input id="email" name="email" type="text" value="' . esc_attr(  $commenter['comment_author_email'] ) . '" size="30" aria-required="true" /></p>',
+                                               ),
+                                               'label_submit'  => __( 'Submit', 'woocommerce' ),
+                                               'logged_in_as'  => '',
+                                               'comment_field' => ''
+                                       );
+
+                                       if ( get_option( 'woocommerce_enable_review_rating' ) === 'yes' ) {
+                                               $comment_form['comment_field'] = '<p class="comment-form-rating"><label for="rating">' . __( 'Your Rating', 'woocommerce' ) .'</label><select name="rating" id="rating">
+                                                       <option value="">' . __( 'Rate&hellip;', 'woocommerce' ) . '</option>
+                                                       <option value="5">' . __( 'Perfect', 'woocommerce' ) . '</option>
+                                                       <option value="4">' . __( 'Good', 'woocommerce' ) . '</option>
+                                                       <option value="3">' . __( 'Average', 'woocommerce' ) . '</option>
+                                                       <option value="2">' . __( 'Not that bad', 'woocommerce' ) . '</option>
+                                                       <option value="1">' . __( 'Very Poor', 'woocommerce' ) . '</option>
+                                               </select></p>';
+                                       }
+
+                                       $comment_form['comment_field'] .= '<p class="comment-form-comment"><label for="comment">' . __( 'Your Review', 'woocommerce' ) . '</label><textarea id="comment" name="comment" cols="45" rows="8" aria-required="true"></textarea></p>';
+
+                                       comment_form( apply_filters( 'woocommerce_product_review_comment_form_args', $comment_form ) );
+                               ?>
+                       </div>
+               </div>
+
+       <?php else : ?>
+
+               <p class="woocommerce-verification-required"><?php _e( 'Only logged in customers who have purchased this product may leave a review.', 'woocommerce' ); ?></p>
+
+       <?php endif; ?>
+
+       <div class="clear"></div>
+</div>
\ No newline at end of file
diff --git a/woocommerce/single-product.php b/woocommerce/single-product.php
new file mode 100644 (file)
index 0000000..b5fcc1e
--- /dev/null
@@ -0,0 +1,50 @@
+<?php
+/**
+ * The Template for displaying all single products.
+ *
+ * Override this template by copying it to yourtheme/woocommerce/single-product.php
+ *
+ * @author             WooThemes
+ * @package    WooCommerce/Templates
+ * @version     1.6.4
+ */
+
+if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
+
+get_header( 'shop' ); ?>
+
+       <?php
+               /**
+                * woocommerce_before_main_content hook
+                *
+                * @hooked woocommerce_output_content_wrapper - 10 (outputs opening divs for the content)
+                * @hooked woocommerce_breadcrumb - 20
+                */
+               do_action( 'woocommerce_before_main_content' );
+       ?>
+
+               <?php while ( have_posts() ) : the_post(); ?>
+
+                       <?php wc_get_template_part( 'content', 'single-product' ); ?>
+
+               <?php endwhile; // end of the loop. ?>
+
+       <?php
+               /**
+                * woocommerce_after_main_content hook
+                *
+                * @hooked woocommerce_output_content_wrapper_end - 10 (outputs closing divs for the content)
+                */
+               do_action( 'woocommerce_after_main_content' );
+       ?>
+
+       <?php
+               /**
+                * woocommerce_sidebar hook
+                *
+                * @hooked woocommerce_get_sidebar - 10
+                */
+               do_action( 'woocommerce_sidebar' );
+       ?>
+
+<?php get_footer( 'shop' ); ?>
\ No newline at end of file
diff --git a/woocommerce/single-product/add-to-cart/external.php b/woocommerce/single-product/add-to-cart/external.php
new file mode 100644 (file)
index 0000000..1636c3a
--- /dev/null
@@ -0,0 +1,19 @@
+<?php
+/**
+ * External product add to cart
+ *
+ * @author             WooThemes
+ * @package    WooCommerce/Templates
+ * @version     2.1.0
+ */
+
+if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
+?>
+
+<?php do_action( 'woocommerce_before_add_to_cart_button' ); ?>
+
+<p class="cart">
+       <a href="<?php echo esc_url( $product_url ); ?>" rel="nofollow" class="single_add_to_cart_button button alt"><?php echo $button_text; ?></a>
+</p>
+
+<?php do_action( 'woocommerce_after_add_to_cart_button' ); ?>
\ No newline at end of file
diff --git a/woocommerce/single-product/add-to-cart/grouped.php b/woocommerce/single-product/add-to-cart/grouped.php
new file mode 100644 (file)
index 0000000..f62b1e6
--- /dev/null
@@ -0,0 +1,82 @@
+<?php
+/**
+ * Grouped product add to cart
+ *
+ * @author             WooThemes
+ * @package    WooCommerce/Templates
+ * @version     2.1.7
+ */
+
+if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
+
+global $product, $post;
+
+$parent_product_post = $post;
+
+do_action( 'woocommerce_before_add_to_cart_form' ); ?>
+
+<form class="cart" method="post" enctype='multipart/form-data'>
+       <table cellspacing="0" class="group_table">
+               <tbody>
+                       <?php
+                               foreach ( $grouped_products as $product_id ) :
+                                       $product = wc_get_product( $product_id );
+                                       $post    = $product->post;
+                                       setup_postdata( $post );
+                                       ?>
+                                       <tr>
+                                               <td>
+                                                       <?php if ( $product->is_sold_individually() || ! $product->is_purchasable() ) : ?>
+                                                               <?php woocommerce_template_loop_add_to_cart(); ?>
+                                                       <?php else : ?>
+                                                               <?php
+                                                                       $quantites_required = true;
+                                                                       woocommerce_quantity_input( array( 'input_name' => 'quantity[' . $product_id . ']', 'input_value' => '0' ) );
+                                                               ?>
+                                                       <?php endif; ?>
+                                               </td>
+
+                                               <td class="label">
+                                                       <label for="product-<?php echo $product_id; ?>">
+                                                               <?php echo $product->is_visible() ? '<a href="' . get_permalink() . '">' . get_the_title() . '</a>' : get_the_title(); ?>
+                                                       </label>
+                                               </td>
+
+                                               <?php do_action ( 'woocommerce_grouped_product_list_before_price', $product ); ?>
+
+                                               <td class="price">
+                                                       <?php
+                                                               echo $product->get_price_html();
+
+                                                               if ( $availability = $product->get_availability() ) {
+                                                                       $availability_html = empty( $availability['availability'] ) ? '' : '<p class="stock ' . esc_attr( $availability['class'] ) . '">' . esc_html( $availability['availability'] ) . '</p>';
+                                                                       echo apply_filters( 'woocommerce_stock_html', $availability_html, $availability['availability'], $product );
+                                                               }
+                                                       ?>
+                                               </td>
+                                       </tr>
+                                       <?php
+                               endforeach;
+
+                               // Reset to parent grouped product
+                               $post    = $parent_product_post;
+                               $product = wc_get_product( $parent_product_post->ID );
+                               setup_postdata( $parent_product_post );
+                       ?>
+               </tbody>
+       </table>
+
+       <input type="hidden" name="add-to-cart" value="<?php echo esc_attr( $product->id ); ?>" />
+
+       <?php if ( $quantites_required ) : ?>
+
+               <?php do_action( 'woocommerce_before_add_to_cart_button' ); ?>
+
+               <button type="submit" class="single_add_to_cart_button button alt"><?php echo $product->single_add_to_cart_text(); ?></button>
+
+               <?php do_action( 'woocommerce_after_add_to_cart_button' ); ?>
+
+       <?php endif; ?>
+</form>
+
+<?php do_action( 'woocommerce_after_add_to_cart_form' ); ?>
\ No newline at end of file
diff --git a/woocommerce/single-product/add-to-cart/simple.php b/woocommerce/single-product/add-to-cart/simple.php
new file mode 100644 (file)
index 0000000..97c3411
--- /dev/null
@@ -0,0 +1,49 @@
+<?php
+/**
+ * Simple product add to cart
+ *
+ * @author             WooThemes
+ * @package    WooCommerce/Templates
+ * @version     2.1.0
+ */
+
+if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
+
+global $product;
+
+if ( ! $product->is_purchasable() ) return;
+?>
+
+<?php
+       // Availability
+       $availability      = $product->get_availability();
+       $availability_html = empty( $availability['availability'] ) ? '' : '<p class="stock ' . esc_attr( $availability['class'] ) . '">' . esc_html( $availability['availability'] ) . '</p>';
+       
+       echo apply_filters( 'woocommerce_stock_html', $availability_html, $availability['availability'], $product );
+?>
+
+<?php if ( $product->is_in_stock() ) : ?>
+
+       <?php do_action( 'woocommerce_before_add_to_cart_form' ); ?>
+
+       <form class="cart" method="post" enctype='multipart/form-data'>
+               <?php do_action( 'woocommerce_before_add_to_cart_button' ); ?>
+
+               <?php
+                       if ( ! $product->is_sold_individually() )
+                               woocommerce_quantity_input( array(
+                                       'min_value' => apply_filters( 'woocommerce_quantity_input_min', 1, $product ),
+                                       'max_value' => apply_filters( 'woocommerce_quantity_input_max', $product->backorders_allowed() ? '' : $product->get_stock_quantity(), $product )
+                               ) );
+               ?>
+
+               <input type="hidden" name="add-to-cart" value="<?php echo esc_attr( $product->id ); ?>" />
+
+               <button type="submit" class="single_add_to_cart_button button alt"><?php echo $product->single_add_to_cart_text(); ?></button>
+
+               <?php do_action( 'woocommerce_after_add_to_cart_button' ); ?>
+       </form>
+
+       <?php do_action( 'woocommerce_after_add_to_cart_form' ); ?>
+
+<?php endif; ?>
\ No newline at end of file
diff --git a/woocommerce/single-product/add-to-cart/variable.php b/woocommerce/single-product/add-to-cart/variable.php
new file mode 100644 (file)
index 0000000..7e3570a
--- /dev/null
@@ -0,0 +1,109 @@
+<?php
+/**
+ * Variable product add to cart
+ *
+ * @author             WooThemes
+ * @package    WooCommerce/Templates
+ * @version     2.1.0
+ */
+
+if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
+
+global $product, $post;
+?>
+
+<?php do_action( 'woocommerce_before_add_to_cart_form' ); ?>
+
+<form class="variations_form cart" method="post" enctype='multipart/form-data' data-product_id="<?php echo $post->ID; ?>" data-product_variations="<?php echo esc_attr( json_encode( $available_variations ) ) ?>">
+       <?php if ( ! empty( $available_variations ) ) : ?>
+               <table class="variations" cellspacing="0">
+                       <tbody>
+                               <?php $loop = 0; foreach ( $attributes as $name => $options ) : $loop++; ?>
+                                       <tr>
+                                               <td class="label"><label for="<?php echo sanitize_title($name); ?>"><?php echo wc_attribute_label( $name ); ?></label></td>
+                                               <td class="value"><select id="<?php echo esc_attr( sanitize_title( $name ) ); ?>" name="attribute_<?php echo sanitize_title( $name ); ?>">
+                                                       <option value=""><?php echo __( 'Choose an option', 'woocommerce' ) ?>&hellip;</option>
+                                                       <?php
+                                                               if ( is_array( $options ) ) {
+
+                                                                       if ( isset( $_REQUEST[ 'attribute_' . sanitize_title( $name ) ] ) ) {
+                                                                               $selected_value = $_REQUEST[ 'attribute_' . sanitize_title( $name ) ];
+                                                                       } elseif ( isset( $selected_attributes[ sanitize_title( $name ) ] ) ) {
+                                                                               $selected_value = $selected_attributes[ sanitize_title( $name ) ];
+                                                                       } else {
+                                                                               $selected_value = '';
+                                                                       }
+
+                                                                       // Get terms if this is a taxonomy - ordered
+                                                                       if ( taxonomy_exists( sanitize_title( $name ) ) ) {
+
+                                                                               $orderby = wc_attribute_orderby( sanitize_title( $name ) );
+
+                                                                               switch ( $orderby ) {
+                                                                                       case 'name' :
+                                                                                               $args = array( 'orderby' => 'name', 'hide_empty' => false, 'menu_order' => false );
+                                                                                       break;
+                                                                                       case 'id' :
+                                                                                               $args = array( 'orderby' => 'id', 'order' => 'ASC', 'menu_order' => false, 'hide_empty' => false );
+                                                                                       break;
+                                                                                       case 'menu_order' :
+                                                                                               $args = array( 'menu_order' => 'ASC', 'hide_empty' => false );
+                                                                                       break;
+                                                                               }
+
+                                                                               $terms = get_terms( sanitize_title( $name ), $args );
+
+                                                                               foreach ( $terms as $term ) {
+                                                                                       if ( ! in_array( $term->slug, $options ) )
+                                                                                               continue;
+
+                                                                                       echo '<option value="' . esc_attr( $term->slug ) . '" ' . selected( sanitize_title( $selected_value ), sanitize_title( $term->slug ), false ) . '>' . apply_filters( 'woocommerce_variation_option_name', $term->name ) . '</option>';
+                                                                               }
+                                                                       } else {
+
+                                                                               foreach ( $options as $option ) {
+                                                                                       echo '<option value="' . esc_attr( sanitize_title( $option ) ) . '" ' . selected( sanitize_title( $selected_value ), sanitize_title( $option ), false ) . '>' . esc_html( apply_filters( 'woocommerce_variation_option_name', $option ) ) . '</option>';
+                                                                               }
+
+                                                                       }
+                                                               }
+                                                       ?>
+                                               </select> <?php
+                                                       if ( sizeof( $attributes ) == $loop )
+                                                               echo '<a class="reset_variations" href="#reset">' . __( 'Clear selection', 'woocommerce' ) . '</a>';
+                                               ?></td>
+                                       </tr>
+                       <?php endforeach;?>
+                       </tbody>
+               </table>
+
+               <?php do_action( 'woocommerce_before_add_to_cart_button' ); ?>
+
+               <div class="single_variation_wrap" style="display:none;">
+                       <?php do_action( 'woocommerce_before_single_variation' ); ?>
+
+                       <div class="single_variation"></div>
+
+                       <div class="variations_button">
+                               <?php woocommerce_quantity_input(); ?>
+                               <button type="submit" class="single_add_to_cart_button button alt"><?php echo $product->single_add_to_cart_text(); ?></button>
+                       </div>
+
+                       <input type="hidden" name="add-to-cart" value="<?php echo $product->id; ?>" />
+                       <input type="hidden" name="product_id" value="<?php echo esc_attr( $post->ID ); ?>" />
+                       <input type="hidden" name="variation_id" value="" />
+
+                       <?php do_action( 'woocommerce_after_single_variation' ); ?>
+               </div>
+
+               <?php do_action( 'woocommerce_after_add_to_cart_button' ); ?>
+
+       <?php else : ?>
+
+               <p class="stock out-of-stock"><?php _e( 'This product is currently out of stock and unavailable.', 'woocommerce' ); ?></p>
+
+       <?php endif; ?>
+
+</form>
+
+<?php do_action( 'woocommerce_after_add_to_cart_form' ); ?>
diff --git a/woocommerce/single-product/meta.php b/woocommerce/single-product/meta.php
new file mode 100644 (file)
index 0000000..6be8c43
--- /dev/null
@@ -0,0 +1,33 @@
+<?php
+/**
+ * Single Product Meta
+ *
+ * @author             WooThemes
+ * @package    WooCommerce/Templates
+ * @version     1.6.4
+ */
+
+if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
+
+global $post, $product;
+
+$cat_count = sizeof( get_the_terms( $post->ID, 'product_cat' ) );
+$tag_count = sizeof( get_the_terms( $post->ID, 'product_tag' ) );
+?>
+<div class="product_meta">
+
+       <?php do_action( 'woocommerce_product_meta_start' ); ?>
+
+       <?php if ( wc_product_sku_enabled() && ( $product->get_sku() || $product->is_type( 'variable' ) ) ) : ?>
+
+               <span class="sku_wrapper"><?php _e( 'SKU:', 'woocommerce' ); ?> <span class="sku" itemprop="sku"><?php echo ( $sku = $product->get_sku() ) ? $sku : __( 'N/A', 'woocommerce' ); ?></span>.</span>
+
+       <?php endif; ?>
+
+       <?php echo $product->get_categories( ', ', '<span class="posted_in">' . _n( 'Category:', 'Categories:', $cat_count, 'woocommerce' ) . ' ', '.</span>' ); ?>
+
+       <?php echo $product->get_tags( ', ', '<span class="tagged_as">' . _n( 'Tag:', 'Tags:', $tag_count, 'woocommerce' ) . ' ', '.</span>' ); ?>
+
+       <?php do_action( 'woocommerce_product_meta_end' ); ?>
+
+</div>
\ No newline at end of file
diff --git a/woocommerce/single-product/price.php b/woocommerce/single-product/price.php
new file mode 100644 (file)
index 0000000..57f817f
--- /dev/null
@@ -0,0 +1,23 @@
+<?php
+/**
+ * Single Product Price, including microdata for SEO
+ *
+ * @author             WooThemes
+ * @package    WooCommerce/Templates
+ * @version     1.6.4
+ */
+
+if ( ! defined( 'ABSPATH' ) ) {
+       exit; // Exit if accessed directly
+}
+
+global $product;
+?>
+<div itemprop="offers" itemscope itemtype="http://schema.org/Offer">
+       <p class="price"><?php echo $product->get_price_html(); ?></p>
+
+       <meta itemprop="price" content="<?php echo $product->get_price(); ?>" />
+       <meta itemprop="priceCurrency" content="<?php echo get_woocommerce_currency(); ?>" />
+       <link itemprop="availability" href="http://schema.org/<?php echo $product->is_in_stock() ? 'InStock' : 'OutOfStock'; ?>" />
+
+</div>
\ No newline at end of file
diff --git a/woocommerce/single-product/product-attributes.php b/woocommerce/single-product/product-attributes.php
new file mode 100644 (file)
index 0000000..da978fc
--- /dev/null
@@ -0,0 +1,74 @@
+<?php
+/**
+ * Product attributes
+ *
+ * Used by list_attributes() in the products class
+ *
+ * @author             WooThemes
+ * @package    WooCommerce/Templates
+ * @version     2.1.3
+ */
+
+if ( ! defined( 'ABSPATH' ) ) {
+       exit; // Exit if accessed directly
+}
+
+$has_row    = false;
+$alt        = 1;
+$attributes = $product->get_attributes();
+
+ob_start();
+?>
+<table class="shop_attributes">
+
+       <?php if ( $product->enable_dimensions_display() ) : ?>
+
+               <?php if ( $product->has_weight() ) : $has_row = true; ?>
+                       <tr class="<?php if ( ( $alt = $alt * -1 ) == 1 ) echo 'alt'; ?>">
+                               <th><?php _e( 'Weight', 'woocommerce' ) ?></th>
+                               <td class="product_weight"><?php echo $product->get_weight() . ' ' . esc_attr( get_option( 'woocommerce_weight_unit' ) ); ?></td>
+                       </tr>
+               <?php endif; ?>
+
+               <?php if ( $product->has_dimensions() ) : $has_row = true; ?>
+                       <tr class="<?php if ( ( $alt = $alt * -1 ) == 1 ) echo 'alt'; ?>">
+                               <th><?php _e( 'Dimensions', 'woocommerce' ) ?></th>
+                               <td class="product_dimensions"><?php echo $product->get_dimensions(); ?></td>
+                       </tr>
+               <?php endif; ?>
+
+       <?php endif; ?>
+
+       <?php foreach ( $attributes as $attribute ) :
+               if ( empty( $attribute['is_visible'] ) || ( $attribute['is_taxonomy'] && ! taxonomy_exists( $attribute['name'] ) ) ) {
+                       continue;
+               } else {
+                       $has_row = true;
+               }
+               ?>
+               <tr class="<?php if ( ( $alt = $alt * -1 ) == 1 ) echo 'alt'; ?>">
+                       <th><?php echo wc_attribute_label( $attribute['name'] ); ?></th>
+                       <td><?php
+                               if ( $attribute['is_taxonomy'] ) {
+
+                                       $values = wc_get_product_terms( $product->id, $attribute['name'], array( 'fields' => 'names' ) );
+                                       echo apply_filters( 'woocommerce_attribute', wpautop( wptexturize( implode( ', ', $values ) ) ), $attribute, $values );
+
+                               } else {
+
+                                       // Convert pipes to commas and display values
+                                       $values = array_map( 'trim', explode( WC_DELIMITER, $attribute['value'] ) );
+                                       echo apply_filters( 'woocommerce_attribute', wpautop( wptexturize( implode( ', ', $values ) ) ), $attribute, $values );
+
+                               }
+                       ?></td>
+               </tr>
+       <?php endforeach; ?>
+       
+</table>
+<?php
+if ( $has_row ) {
+       echo ob_get_clean();
+} else {
+       ob_end_clean();
+}
\ No newline at end of file
diff --git a/woocommerce/single-product/product-image.php b/woocommerce/single-product/product-image.php
new file mode 100644 (file)
index 0000000..6f7f602
--- /dev/null
@@ -0,0 +1,45 @@
+<?php
+/**
+ * Single Product Image
+ *
+ * @author             WooThemes
+ * @package    WooCommerce/Templates
+ * @version     2.0.14
+ */
+
+if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
+
+global $post, $woocommerce, $product;
+
+?>
+<div class="images">
+
+       <?php
+               if ( has_post_thumbnail() ) {
+
+                       $image_title = esc_attr( get_the_title( get_post_thumbnail_id() ) );
+                       $image_link  = wp_get_attachment_url( get_post_thumbnail_id() );
+                       $image       = get_the_post_thumbnail( $post->ID, apply_filters( 'single_product_large_thumbnail_size', 'shop_single' ), array(
+                               'title' => $image_title
+                               ) );
+
+                       $attachment_count = count( $product->get_gallery_attachment_ids() );
+
+                       if ( $attachment_count > 0 ) {
+                               $gallery = '[product-gallery]';
+                       } else {
+                               $gallery = '';
+                       }
+
+                       echo apply_filters( 'woocommerce_single_product_image_html', sprintf( '<a href="%s" itemprop="image" class="woocommerce-main-image zoom" title="%s" data-rel="prettyPhoto' . $gallery . '">%s</a>', $image_link, $image_title, $image ), $post->ID );
+
+               } else {
+
+                       echo apply_filters( 'woocommerce_single_product_image_html', sprintf( '<img src="%s" alt="%s" />', wc_placeholder_img_src(), __( 'Placeholder', 'woocommerce' ) ), $post->ID );
+
+               }
+       ?>
+
+       <?php do_action( 'woocommerce_product_thumbnails' ); ?>
+
+</div>
diff --git a/woocommerce/single-product/product-thumbnails.php b/woocommerce/single-product/product-thumbnails.php
new file mode 100644 (file)
index 0000000..f4d1313
--- /dev/null
@@ -0,0 +1,49 @@
+<?php
+/**
+ * Single Product Thumbnails
+ *
+ * @author             WooThemes
+ * @package    WooCommerce/Templates
+ * @version     2.0.3
+ */
+
+if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
+
+global $post, $product, $woocommerce;
+
+$attachment_ids = $product->get_gallery_attachment_ids();
+
+if ( $attachment_ids ) {
+       ?>
+       <div class="thumbnails"><?php
+
+               $loop = 0;
+               $columns = apply_filters( 'woocommerce_product_thumbnails_columns', 3 );
+
+               foreach ( $attachment_ids as $attachment_id ) {
+
+                       $classes = array( 'zoom' );
+
+                       if ( $loop == 0 || $loop % $columns == 0 )
+                               $classes[] = 'first';
+
+                       if ( ( $loop + 1 ) % $columns == 0 )
+                               $classes[] = 'last';
+
+                       $image_link = wp_get_attachment_url( $attachment_id );
+
+                       if ( ! $image_link )
+                               continue;
+
+                       $image       = wp_get_attachment_image( $attachment_id, apply_filters( 'single_product_small_thumbnail_size', 'shop_thumbnail' ) );
+                       $image_class = esc_attr( implode( ' ', $classes ) );
+                       $image_title = esc_attr( get_the_title( $attachment_id ) );
+
+                       echo apply_filters( 'woocommerce_single_product_image_thumbnail_html', sprintf( '<a href="%s" class="%s" title="%s" data-rel="prettyPhoto[product-gallery]">%s</a>', $image_link, $image_class, $image_title, $image ), $attachment_id, $post->ID, $image_class );
+
+                       $loop++;
+               }
+
+       ?></div>
+       <?php
+}
\ No newline at end of file
diff --git a/woocommerce/single-product/rating.php b/woocommerce/single-product/rating.php
new file mode 100644 (file)
index 0000000..85fb73a
--- /dev/null
@@ -0,0 +1,31 @@
+<?php
+/**
+ * Single Product Rating
+ *
+ * @author             WooThemes
+ * @package    WooCommerce/Templates
+ * @version     2.1.0
+ */
+
+if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
+
+global $product;
+
+if ( get_option( 'woocommerce_enable_review_rating' ) === 'no' )
+       return;
+
+$count   = $product->get_rating_count();
+$average = $product->get_average_rating();
+
+if ( $count > 0 ) : ?>
+
+       <div class="woocommerce-product-rating" itemprop="aggregateRating" itemscope itemtype="http://schema.org/AggregateRating">
+               <div class="star-rating" title="<?php printf( __( 'Rated %s out of 5', 'woocommerce' ), $average ); ?>">
+                       <span style="width:<?php echo ( ( $average / 5 ) * 100 ); ?>%">
+                               <strong itemprop="ratingValue" class="rating"><?php echo esc_html( $average ); ?></strong> <?php _e( 'out of 5', 'woocommerce' ); ?>
+                       </span>
+               </div>
+               <a href="#reviews" class="woocommerce-review-link" rel="nofollow">(<?php printf( _n( '%s customer review', '%s customer reviews', $count, 'woocommerce' ), '<span itemprop="ratingCount" class="count">' . $count . '</span>' ); ?>)</a>
+       </div>
+
+<?php endif; ?>
\ No newline at end of file
diff --git a/woocommerce/single-product/related.php b/woocommerce/single-product/related.php
new file mode 100644 (file)
index 0000000..0cf0539
--- /dev/null
@@ -0,0 +1,56 @@
+<?php
+/**
+ * Related Products
+ *
+ * @author             WooThemes
+ * @package    WooCommerce/Templates
+ * @version     1.6.4
+ */
+
+if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
+
+global $product, $woocommerce_loop;
+
+if ( empty( $product ) || ! $product->exists() ) {
+       return;
+}
+
+$related = $product->get_related( $posts_per_page );
+
+if ( sizeof( $related ) == 0 ) return;
+
+$args = apply_filters( 'woocommerce_related_products_args', array(
+       'post_type'            => 'product',
+       'ignore_sticky_posts'  => 1,
+       'no_found_rows'        => 1,
+       'posts_per_page'       => $posts_per_page,
+       'orderby'              => $orderby,
+       'post__in'             => $related,
+       'post__not_in'         => array( $product->id )
+) );
+
+$products = new WP_Query( $args );
+
+$woocommerce_loop['columns'] = $columns;
+
+if ( $products->have_posts() ) : ?>
+
+       <div class="related products">
+
+               <h2><?php _e( 'Related Products', 'woocommerce' ); ?></h2>
+
+               <?php woocommerce_product_loop_start(); ?>
+
+                       <?php while ( $products->have_posts() ) : $products->the_post(); ?>
+
+                               <?php wc_get_template_part( 'content', 'product' ); ?>
+
+                       <?php endwhile; // end of the loop. ?>
+
+               <?php woocommerce_product_loop_end(); ?>
+
+       </div>
+
+<?php endif;
+
+wp_reset_postdata();
diff --git a/woocommerce/single-product/review.php b/woocommerce/single-product/review.php
new file mode 100644 (file)
index 0000000..510d801
--- /dev/null
@@ -0,0 +1,52 @@
+<?php
+/**
+ * Review Comments Template
+ *
+ * Closing li is left out on purpose!
+ *
+ * @author             WooThemes
+ * @package    WooCommerce/Templates
+ * @version     2.1.0
+ */
+
+if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
+
+$rating = intval( get_comment_meta( $comment->comment_ID, 'rating', true ) );
+?>
+<li itemprop="reviews" itemscope itemtype="http://schema.org/Review" <?php comment_class(); ?> id="li-comment-<?php comment_ID() ?>">
+
+       <div id="comment-<?php comment_ID(); ?>" class="comment_container">
+
+               <?php echo get_avatar( $comment, apply_filters( 'woocommerce_review_gravatar_size', '60' ), '', get_comment_author() ); ?>
+
+               <div class="comment-text">
+
+                       <?php if ( $rating && get_option( 'woocommerce_enable_review_rating' ) == 'yes' ) : ?>
+
+                               <div itemprop="reviewRating" itemscope itemtype="http://schema.org/Rating" class="star-rating" title="<?php echo sprintf( __( 'Rated %d out of 5', 'woocommerce' ), $rating ) ?>">
+                                       <span style="width:<?php echo ( $rating / 5 ) * 100; ?>%"><strong itemprop="ratingValue"><?php echo $rating; ?></strong> <?php _e( 'out of 5', 'woocommerce' ); ?></span>
+                               </div>
+
+                       <?php endif; ?>
+
+                       <?php if ( $comment->comment_approved == '0' ) : ?>
+
+                               <p class="meta"><em><?php _e( 'Your comment is awaiting approval', 'woocommerce' ); ?></em></p>
+
+                       <?php else : ?>
+
+                               <p class="meta">
+                                       <strong itemprop="author"><?php comment_author(); ?></strong> <?php
+
+                                               if ( get_option( 'woocommerce_review_rating_verification_label' ) === 'yes' )
+                                                       if ( wc_customer_bought_product( $comment->comment_author_email, $comment->user_id, $comment->comment_post_ID ) )
+                                                               echo '<em class="verified">(' . __( 'verified owner', 'woocommerce' ) . ')</em> ';
+
+                                       ?>&ndash; <time itemprop="datePublished" datetime="<?php echo get_comment_date( 'c' ); ?>"><?php echo get_comment_date( __( get_option( 'date_format' ), 'woocommerce' ) ); ?></time>:
+                               </p>
+
+                       <?php endif; ?>
+
+                       <div itemprop="description" class="description"><?php comment_text(); ?></div>
+               </div>
+       </div>
diff --git a/woocommerce/single-product/sale-flash.php b/woocommerce/single-product/sale-flash.php
new file mode 100644 (file)
index 0000000..4bc8cb4
--- /dev/null
@@ -0,0 +1,18 @@
+<?php
+/**
+ * Single Product Sale Flash
+ *
+ * @author             WooThemes
+ * @package    WooCommerce/Templates
+ * @version     1.6.4
+ */
+
+if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
+
+global $post, $product;
+?>
+<?php if ( $product->is_on_sale() ) : ?>
+
+       <?php echo apply_filters( 'woocommerce_sale_flash', '<span class="onsale">' . __( 'Sale!', 'woocommerce' ) . '</span>', $post, $product ); ?>
+
+<?php endif; ?>
\ No newline at end of file
diff --git a/woocommerce/single-product/share.php b/woocommerce/single-product/share.php
new file mode 100644 (file)
index 0000000..069b860
--- /dev/null
@@ -0,0 +1,16 @@
+<?php
+/**
+ * Single Product Share
+ *
+ * Sharing plugins can hook into here or you can add your own code directly.
+ *
+ * @author             WooThemes
+ * @package    WooCommerce/Templates
+ * @version     1.6.4
+ */
+
+if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
+
+?>
+
+<?php do_action( 'woocommerce_share' ); // Sharing plugins can hook into here ?>
\ No newline at end of file
diff --git a/woocommerce/single-product/short-description.php b/woocommerce/single-product/short-description.php
new file mode 100644 (file)
index 0000000..1e9bb9c
--- /dev/null
@@ -0,0 +1,18 @@
+<?php
+/**
+ * Single product short description
+ *
+ * @author             WooThemes
+ * @package    WooCommerce/Templates
+ * @version     1.6.4
+ */
+
+if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
+
+global $post;
+
+if ( ! $post->post_excerpt ) return;
+?>
+<div itemprop="description">
+       <?php echo apply_filters( 'woocommerce_short_description', $post->post_excerpt ) ?>
+</div>
\ No newline at end of file
diff --git a/woocommerce/single-product/tabs/additional-information.php b/woocommerce/single-product/tabs/additional-information.php
new file mode 100644 (file)
index 0000000..24ae890
--- /dev/null
@@ -0,0 +1,24 @@
+<?php
+/**
+ * Additional Information tab
+ * 
+ * @author        WooThemes
+ * @package       WooCommerce/Templates
+ * @version       2.0.0
+ */
+
+if ( ! defined( 'ABSPATH' ) ) {
+       // Exit if accessed directly
+       exit;
+}
+
+global $product;
+
+$heading = apply_filters( 'woocommerce_product_additional_information_heading', __( 'Additional Information', 'woocommerce' ) );
+?>
+
+<?php if ( $heading ): ?>
+       <h2><?php echo $heading; ?></h2>
+<?php endif; ?>
+
+<?php $product->list_attributes(); ?>
\ No newline at end of file
diff --git a/woocommerce/single-product/tabs/description.php b/woocommerce/single-product/tabs/description.php
new file mode 100644 (file)
index 0000000..69b163d
--- /dev/null
@@ -0,0 +1,21 @@
+<?php
+/**
+ * Description tab
+ *
+ * @author             WooThemes
+ * @package    WooCommerce/Templates
+ * @version     2.0.0
+ */
+
+if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
+
+global $post;
+
+$heading = esc_html( apply_filters( 'woocommerce_product_description_heading', __( 'Product Description', 'woocommerce' ) ) );
+?>
+
+<?php if ( $heading ): ?>
+  <h2><?php echo $heading; ?></h2>
+<?php endif; ?>
+
+<?php the_content(); ?>
diff --git a/woocommerce/single-product/tabs/tabs.php b/woocommerce/single-product/tabs/tabs.php
new file mode 100644 (file)
index 0000000..9c42da1
--- /dev/null
@@ -0,0 +1,41 @@
+<?php
+/**
+ * Single Product tabs
+ *
+ * @author             WooThemes
+ * @package    WooCommerce/Templates
+ * @version     2.0.0
+ */
+
+if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
+
+/**
+ * Filter tabs and allow third parties to add their own
+ *
+ * Each tab is an array containing title, callback and priority.
+ * @see woocommerce_default_product_tabs()
+ */
+$tabs = apply_filters( 'woocommerce_product_tabs', array() );
+
+if ( ! empty( $tabs ) ) : ?>
+
+       <div class="woocommerce-tabs">
+               <ul class="tabs">
+                       <?php foreach ( $tabs as $key => $tab ) : ?>
+
+                               <li class="<?php echo $key ?>_tab">
+                                       <a href="#tab-<?php echo $key ?>"><?php echo apply_filters( 'woocommerce_product_' . $key . '_tab_title', $tab['title'], $key ) ?></a>
+                               </li>
+
+                       <?php endforeach; ?>
+               </ul>
+               <?php foreach ( $tabs as $key => $tab ) : ?>
+
+                       <div class="panel entry-content" id="tab-<?php echo $key ?>">
+                               <?php call_user_func( $tab['callback'], $key, $tab ) ?>
+                       </div>
+
+               <?php endforeach; ?>
+       </div>
+
+<?php endif; ?>
\ No newline at end of file
diff --git a/woocommerce/single-product/title.php b/woocommerce/single-product/title.php
new file mode 100644 (file)
index 0000000..90e5028
--- /dev/null
@@ -0,0 +1,13 @@
+<?php
+/**
+ * Single Product title
+ *
+ * @author             WooThemes
+ * @package    WooCommerce/Templates
+ * @version     1.6.4
+ */
+
+if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
+
+?>
+<h1 itemprop="name" class="product_title entry-title"><?php the_title(); ?></h1>
\ No newline at end of file
diff --git a/woocommerce/single-product/up-sells.php b/woocommerce/single-product/up-sells.php
new file mode 100644 (file)
index 0000000..b69db7c
--- /dev/null
@@ -0,0 +1,55 @@
+<?php
+/**
+ * Single Product Up-Sells
+ *
+ * @author             WooThemes
+ * @package    WooCommerce/Templates
+ * @version     1.6.4
+ */
+
+if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
+
+global $product, $woocommerce_loop;
+
+$upsells = $product->get_upsells();
+
+if ( sizeof( $upsells ) == 0 ) return;
+
+$meta_query = WC()->query->get_meta_query();
+
+$args = array(
+       'post_type'           => 'product',
+       'ignore_sticky_posts' => 1,
+       'no_found_rows'       => 1,
+       'posts_per_page'      => $posts_per_page,
+       'orderby'             => $orderby,
+       'post__in'            => $upsells,
+       'post__not_in'        => array( $product->id ),
+       'meta_query'          => $meta_query
+);
+
+$products = new WP_Query( $args );
+
+$woocommerce_loop['columns'] = $columns;
+
+if ( $products->have_posts() ) : ?>
+
+       <div class="upsells products">
+
+               <h2><?php _e( 'You may also like&hellip;', 'woocommerce' ) ?></h2>
+
+               <?php woocommerce_product_loop_start(); ?>
+
+                       <?php while ( $products->have_posts() ) : $products->the_post(); ?>
+
+                               <?php wc_get_template_part( 'content', 'product' ); ?>
+
+                       <?php endwhile; // end of the loop. ?>
+
+               <?php woocommerce_product_loop_end(); ?>
+
+       </div>
+
+<?php endif;
+
+wp_reset_postdata();
diff --git a/woocommerce/taxonomy-product_cat.php b/woocommerce/taxonomy-product_cat.php
new file mode 100644 (file)
index 0000000..b016e57
--- /dev/null
@@ -0,0 +1,14 @@
+<?php
+/**
+ * The Template for displaying products in a product category. Simply includes the archive template.
+ *
+ * Override this template by copying it to yourtheme/woocommerce/taxonomy-product_cat.php
+ *
+ * @author             WooThemes
+ * @package    WooCommerce/Templates
+ * @version     1.6.4
+ */
+
+if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
+
+wc_get_template( 'archive-product.php' );
\ No newline at end of file
diff --git a/woocommerce/taxonomy-product_tag.php b/woocommerce/taxonomy-product_tag.php
new file mode 100644 (file)
index 0000000..c98dc79
--- /dev/null
@@ -0,0 +1,14 @@
+<?php
+/**
+ * The Template for displaying products in a product tag. Simply includes the archive template.
+ *
+ * Override this template by copying it to yourtheme/woocommerce/taxonomy-product_tag.php
+ *
+ * @author             WooThemes
+ * @package    WooCommerce/Templates
+ * @version     1.6.4
+ */
+
+if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
+
+wc_get_template( 'archive-product.php' );
\ No newline at end of file