├── index.php ├── public ├── css │ ├── app │ │ ├── layout │ │ │ ├── _layout.scss │ │ │ └── .DS_Store │ │ ├── base │ │ │ ├── _global.scss │ │ │ └── _fallbacks.scss │ │ ├── .DS_Store │ │ ├── components │ │ │ ├── _pricing.scss │ │ │ ├── .DS_Store │ │ │ ├── _icons.scss │ │ │ ├── _forms.scss │ │ │ ├── _collections.scss │ │ │ └── _breadcrumbs.scss │ │ ├── utilities │ │ │ ├── .DS_Store │ │ │ ├── _animations.scss │ │ │ └── _colors.scss │ │ ├── grid.scss │ │ └── core.scss │ └── .DS_Store ├── index.php ├── .DS_Store ├── js │ ├── .DS_Store │ └── app │ │ ├── plugin │ │ └── plugin.js │ │ ├── ws │ │ ├── api │ │ │ ├── api-variants.js │ │ │ └── api-endpoints.js │ │ └── ws-client.js │ │ ├── utils │ │ ├── utils-settings.js │ │ └── utils-client.js │ │ ├── cache │ │ └── cache.js │ │ └── app.js ├── imgs │ ├── placeholder.png │ ├── icon-arrow-dropdown.svg │ ├── icon-add-to-cart.svg │ ├── icon-spinner.svg │ └── icon-success.svg └── templates │ └── partials │ ├── pagination │ ├── end.php │ ├── start.php │ ├── page-last.php │ ├── page-next.php │ ├── page-number-current.php │ ├── page-first.php │ ├── page-number.php │ ├── page-previous.php │ └── counter.php │ ├── products │ ├── single │ │ ├── end.php │ │ ├── gallery-end.php │ │ ├── thumbs-end.php │ │ ├── info-end.php │ │ ├── info-start.php │ │ ├── gallery-start.php │ │ ├── header.php │ │ ├── thumbs-start.php │ │ ├── heading.php │ │ ├── content.php │ │ └── start.php │ ├── related │ │ ├── end.php │ │ ├── start.php │ │ └── heading.php │ ├── loop │ │ ├── end.php │ │ ├── item-end.php │ │ ├── item-link-end.php │ │ ├── start.php │ │ ├── item-title.php │ │ ├── item-description.php │ │ ├── item-price.php │ │ └── item-img.php │ ├── add-to-cart │ │ ├── price-wrapper-end.php │ │ ├── price-wrapper-start.php │ │ └── meta-end.php │ └── action-groups │ │ ├── end.php │ │ └── start.php │ ├── collections │ ├── single │ │ ├── end.php │ │ ├── heading.php │ │ ├── start.php │ │ ├── img.php │ │ ├── content.php │ │ └── products-heading.php │ └── loop │ │ ├── end.php │ │ ├── item-end.php │ │ ├── item-link-end.php │ │ ├── start.php │ │ ├── item-title.php │ │ └── item-img.php │ ├── notices │ ├── not-found.php │ ├── add-to-cart.php │ ├── no-results.php │ └── out-of-stock.php │ └── cart │ ├── cart-counter.php │ ├── cart-terms.php │ └── cart-icon-wrapper.php ├── admin ├── index.php ├── .DS_Store ├── css │ ├── .DS_Store │ ├── app │ │ └── .DS_Store │ └── vendor │ │ ├── chosen-sprite.png │ │ └── chosen-sprite@2x.png ├── js │ ├── .DS_Store │ └── app │ │ ├── .DS_Store │ │ ├── globals │ │ └── globals-general.js │ │ ├── ws │ │ ├── api │ │ │ ├── api-tools.js │ │ │ ├── api-variants.js │ │ │ ├── api-shop.js │ │ │ ├── api-orders.js │ │ │ ├── api-collects.js │ │ │ ├── api-customers.js │ │ │ ├── api-posts.js │ │ │ └── api-syncing.js │ │ └── syncing.js │ │ ├── _tests │ │ ├── unit │ │ │ └── ws │ │ │ │ └── ws-api-endpoints.unit.test.js │ │ └── integration │ │ │ └── ws.integration.test.js │ │ └── forms │ │ └── events.js ├── imgs │ └── spinner-2x.gif └── partials │ ├── .DS_Store │ ├── wps-admin-notices.php │ └── wps-tab-content-updates-pro.php ├── classes ├── index.php ├── .DS_Store ├── class-routes.php ├── utils │ ├── class-posts.php │ ├── class-urls.php │ ├── class-pricing.php │ ├── class-filtering.php │ └── class-predicates.php ├── render │ └── class-data.php ├── factories │ ├── db │ │ ├── class-db-factory.php │ │ ├── class-collects-factory.php │ │ ├── class-shop-factory.php │ │ ├── class-tags-factory.php │ │ ├── class-images-factory.php │ │ ├── class-orders-factory.php │ │ ├── class-options-factory.php │ │ ├── class-posts-factory.php │ │ ├── class-products-factory.php │ │ ├── class-customers-factory.php │ │ ├── class-collections-smart-factory.php │ │ ├── class-settings-general-factory.php │ │ ├── class-settings-license-factory.php │ │ ├── class-settings-syncing-factory.php │ │ ├── class-collections-custom-factory.php │ │ ├── class-settings-connection-factory.php │ │ ├── class-variants-factory.php │ │ └── class-collections-factory.php │ ├── class-checkouts-factory.php │ ├── class-routes-factory.php │ ├── layout │ │ └── class-data-factory.php │ ├── class-i18n-factory.php │ ├── class-utils-factory.php │ ├── class-config-factory.php │ ├── class-template-loader-factory.php │ ├── class-transients-factory.php │ ├── class-deactivator-factory.php │ ├── class-api-factory.php │ ├── class-http-factory.php │ ├── api │ │ ├── misc │ │ │ ├── class-routes-factory.php │ │ │ └── class-notices-factory.php │ │ ├── tools │ │ │ ├── class-cache-factory.php │ │ │ └── class-clear-factory.php │ │ ├── processing │ │ │ ├── class-shop-factory.php │ │ │ ├── class-tags-factory.php │ │ │ ├── class-images-factory.php │ │ │ ├── class-orders-factory.php │ │ │ ├── class-options-factory.php │ │ │ ├── class-collects-factory.php │ │ │ ├── class-products-factory.php │ │ │ ├── class-variants-factory.php │ │ │ ├── class-customers-factory.php │ │ │ ├── class-webhooks-factory.php │ │ │ ├── class-webhooks-deletions-factory.php │ │ │ ├── class-posts-products-factory.php │ │ │ └── class-collections-factory.php │ │ ├── settings │ │ │ ├── class-cart-factory.php │ │ │ ├── class-layout-factory.php │ │ │ ├── class-products-factory.php │ │ │ ├── class-checkout-factory.php │ │ │ ├── class-collections-factory.php │ │ │ ├── class-related-products-factory.php │ │ │ ├── class-license-factory.php │ │ │ └── class-general-factory.php │ │ ├── syncing │ │ │ ├── class-counts-factory.php │ │ │ ├── class-indicator-factory.php │ │ │ └── class-status-factory.php │ │ └── items │ │ │ ├── class-variants-factory.php │ │ │ ├── class-shop-factory.php │ │ │ ├── class-orders-factory.php │ │ │ └── class-collects-factory.php │ ├── class-cpt-model-factory.php │ ├── class-shopify-api-factory.php │ ├── render │ │ └── class-products-factory.php │ ├── class-pagination-factory.php │ ├── class-updater-factory.php │ ├── class-webhooks-factory.php │ ├── processing │ │ ├── class-shop-factory.php │ │ ├── class-tags-factory.php │ │ ├── class-orders-factory.php │ │ ├── class-posts-factory.php │ │ ├── class-collects-factory.php │ │ ├── class-variants-factory.php │ │ ├── class-customers-factory.php │ │ ├── class-products-factory.php │ │ ├── class-images-factory.php │ │ ├── class-posts-products-factory.php │ │ ├── class-webhooks-deletions-factory.php │ │ ├── class-collections-custom-factory.php │ │ ├── class-collections-smart-factory.php │ │ ├── class-webhooks-factory.php │ │ ├── class-posts-collections-smart-factory.php │ │ ├── class-posts-collections-custom-factory.php │ │ └── class-options-factory.php │ ├── class-backend-factory.php │ ├── class-cpt-query-factory.php │ ├── class-money-factory.php │ └── class-frontend-factory.php ├── class-webhooks.php ├── class-i18n.php ├── api │ ├── settings │ │ └── class-layout.php │ └── items │ │ ├── class-orders.php │ │ ├── class-customers.php │ │ └── class-webhooks.php ├── processing │ ├── class-posts-products.php │ ├── class-posts-collections-custom.php │ └── class-posts-collections-smart.php └── class-deactivator.php ├── tests ├── phpunit │ └── data │ │ └── themedir1 │ │ ├── broken-theme │ │ └── .nodelete │ │ ├── subdir │ │ ├── theme with spaces │ │ │ ├── index.php │ │ │ └── style.css │ │ └── theme2 │ │ │ ├── functions.php │ │ │ ├── index.php │ │ │ └── style.css │ │ ├── default │ │ ├── index.php │ │ ├── comments.php │ │ ├── style.css │ │ └── functions.php │ │ ├── page-templates │ │ ├── 38766 │ │ │ ├── trailing-comma-post-types.php │ │ │ ├── trailing-period-post-types.php │ │ │ ├── no-trailing-period-post-types.php │ │ │ ├── trailing-period-whitespace-post-types.php │ │ │ ├── trailing-whitespace-period-post-types.php │ │ │ └── tilde-post-types.php │ │ ├── index.php │ │ ├── template-top-level.php │ │ ├── subdir │ │ │ ├── template-sub-dir.php │ │ │ └── template-sub-dir-post-types.php │ │ ├── template-header.php │ │ ├── template-top-level-post-types.php │ │ └── style.css │ │ ├── internationalized-theme │ │ ├── index.php │ │ ├── functions.php │ │ └── style.css │ │ ├── camelCase │ │ ├── index.php │ │ └── style.css │ │ ├── child-parent-itself │ │ └── style.css │ │ ├── sandbox │ │ ├── index.php │ │ ├── functions.php │ │ └── style.css │ │ ├── theme1 │ │ ├── index.php │ │ ├── functions.php │ │ └── style.css │ │ ├── theme1-dupe │ │ ├── index.php │ │ ├── functions.php │ │ └── style.css │ │ ├── page-templates-child │ │ ├── subdir │ │ │ └── template-sub-dir-post-types-child.php │ │ ├── template-top-level-post-types-child.php │ │ └── style.css │ │ └── stylesheetonly │ │ └── style.css ├── mock-data │ ├── tags │ │ └── tag.json │ ├── options │ │ ├── options-one.json │ │ ├── option.json │ │ ├── option-update.json │ │ └── options-three.json │ ├── option-sync-insert.json │ ├── collects │ │ └── collect.json │ ├── collect-sync-insert.json │ ├── collections │ │ └── collection-to-delete.json │ ├── image-update.json │ ├── images │ │ └── image.json │ ├── collection-sync-custom-insert.json │ ├── collection-smart.json │ ├── collection-smart-update.json │ ├── license.json │ └── collection-sync-smart-insert.json ├── render │ └── test-render-products.php ├── test-bootstrap.php ├── test-shortcodes.php ├── api │ ├── items │ │ ├── not-used-class-orders.php │ │ ├── not-used-class-posts.php │ │ ├── not-used-class-shop.php │ │ ├── not-used-class-collects.php │ │ ├── not-used-class-customers.php │ │ ├── not-used-class-products.php │ │ ├── not-used-class-variants.php │ │ └── not-used-class-webhooks.php │ ├── misc │ │ └── not-used-class-notices.php │ ├── settings │ │ ├── not-used-class-cart.php │ │ ├── not-used-class-checkout.php │ │ ├── not-used-class-general.php │ │ ├── not-used-class-layout.php │ │ ├── not-used-class-license.php │ │ ├── not-used-class-collections.php │ │ ├── not-used-class-connection.php │ │ └── not-used-class-related-products.php │ ├── tools │ │ ├── not-used-class-cache.php │ │ └── not-used-class-clear.php │ └── processing │ │ ├── not-used-class-images.php │ │ ├── not-used-class-options.php │ │ ├── not-used-class-orders.php │ │ ├── not-used-class-shop.php │ │ ├── not-used-class-tags.php │ │ ├── not-used-class-collections.php │ │ ├── not-used-class-collects.php │ │ ├── not-used-class-customers.php │ │ ├── not-used-class-products.php │ │ ├── not-used-class-variants.php │ │ ├── not-used-class-webhooks.php │ │ ├── not-used-class-posts-products.php │ │ └── not-used-class-webhooks-deletions.php ├── jest │ ├── jest.config.unit.json │ └── jest.config.integration.json ├── test-messages.php └── bootstrap.php ├── vendor ├── gerardojbaez │ └── money │ │ ├── .gitattributes │ │ ├── .DS_Store │ │ ├── src │ │ ├── Exceptions │ │ │ └── CurrencyException.php │ │ └── helpers.php │ │ ├── .editorconfig │ │ └── phpunit.xml ├── myclabs │ └── deep-copy │ │ ├── .gitignore │ │ ├── fixtures │ │ ├── f008 │ │ │ ├── B.php │ │ │ └── A.php │ │ ├── f005 │ │ │ └── Foo.php │ │ ├── f004 │ │ │ └── UnclonableItem.php │ │ ├── f007 │ │ │ ├── FooDateInterval.php │ │ │ └── FooDateTimeZone.php │ │ ├── f001 │ │ │ ├── A.php │ │ │ └── B.php │ │ ├── f003 │ │ │ └── Foo.php │ │ ├── f006 │ │ │ ├── A.php │ │ │ └── B.php │ │ └── f002 │ │ │ └── A.php │ │ ├── doc │ │ ├── clone.png │ │ ├── graph.png │ │ ├── deep-copy.png │ │ └── deep-clone.png │ │ ├── .scrutinizer.yml │ │ ├── .gitattributes │ │ └── src │ │ └── DeepCopy │ │ ├── Exception │ │ ├── CloneException.php │ │ └── PropertyException.php │ │ ├── TypeFilter │ │ ├── Spl │ │ │ └── SplDoublyLinkedList.php │ │ ├── TypeFilter.php │ │ ├── ShallowCopyFilter.php │ │ └── ReplaceFilter.php │ │ ├── Matcher │ │ ├── Matcher.php │ │ ├── Doctrine │ │ │ └── DoctrineProxyMatcher.php │ │ └── PropertyNameMatcher.php │ │ ├── Filter │ │ ├── KeepFilter.php │ │ ├── Filter.php │ │ ├── Doctrine │ │ │ └── DoctrineProxyFilter.php │ │ └── SetNullFilter.php │ │ ├── deep_copy.php │ │ └── TypeMatcher │ │ └── TypeMatcher.php ├── autoload.php └── composer │ ├── autoload_namespaces.php │ ├── autoload_files.php │ └── autoload_psr4.php ├── assets └── icon-128x128.png ├── postcss.config.js ├── .gitignore ├── .eslintrc ├── .phpunit-watcher.yml ├── gulp └── tasks │ ├── reload.js │ ├── clean-builds.js │ ├── clean-tmp.js │ ├── clean-dist.js │ ├── server.js │ ├── clean-free-repo.js │ ├── clean-pro.js │ ├── clean-free.js │ ├── images-admin.js │ ├── images-public.js │ ├── js.js │ ├── init.js │ ├── js-admin.js │ ├── js-public.js │ ├── watch.js │ ├── css-public.js │ ├── css-admin.js │ ├── css-public-grid.js │ └── css-public-core.js ├── composer.json ├── .babelrc └── uninstall.php /index.php: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/phpunit/data/themedir1/subdir/theme2/index.php: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /admin/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shopwp/wp-shopify/HEAD/admin/.DS_Store -------------------------------------------------------------------------------- /classes/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shopwp/wp-shopify/HEAD/classes/.DS_Store -------------------------------------------------------------------------------- /public/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shopwp/wp-shopify/HEAD/public/.DS_Store -------------------------------------------------------------------------------- /vendor/myclabs/deep-copy/.gitignore: -------------------------------------------------------------------------------- 1 | /composer.phar 2 | /composer.lock 3 | /vendor/* 4 | -------------------------------------------------------------------------------- /admin/css/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shopwp/wp-shopify/HEAD/admin/css/.DS_Store -------------------------------------------------------------------------------- /admin/js/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shopwp/wp-shopify/HEAD/admin/js/.DS_Store -------------------------------------------------------------------------------- /public/css/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shopwp/wp-shopify/HEAD/public/css/.DS_Store -------------------------------------------------------------------------------- /public/js/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shopwp/wp-shopify/HEAD/public/js/.DS_Store -------------------------------------------------------------------------------- /admin/js/app/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shopwp/wp-shopify/HEAD/admin/js/app/.DS_Store -------------------------------------------------------------------------------- /tests/phpunit/data/themedir1/default/index.php: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /admin/css/app/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shopwp/wp-shopify/HEAD/admin/css/app/.DS_Store -------------------------------------------------------------------------------- /admin/imgs/spinner-2x.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shopwp/wp-shopify/HEAD/admin/imgs/spinner-2x.gif -------------------------------------------------------------------------------- /admin/partials/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shopwp/wp-shopify/HEAD/admin/partials/.DS_Store -------------------------------------------------------------------------------- /assets/icon-128x128.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shopwp/wp-shopify/HEAD/assets/icon-128x128.png -------------------------------------------------------------------------------- /public/css/app/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shopwp/wp-shopify/HEAD/public/css/app/.DS_Store -------------------------------------------------------------------------------- /public/css/app/components/_pricing.scss: -------------------------------------------------------------------------------- 1 | .wps-price-wrapper { 2 | display: inline-block; 3 | } 4 | -------------------------------------------------------------------------------- /postcss.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | plugins: [ 3 | require('autoprefixer') 4 | ] 5 | }; 6 | -------------------------------------------------------------------------------- /public/imgs/placeholder.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shopwp/wp-shopify/HEAD/public/imgs/placeholder.png -------------------------------------------------------------------------------- /tests/phpunit/data/themedir1/internationalized-theme/index.php: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /vendor/myclabs/deep-copy/fixtures/f008/B.php: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/phpunit/data/themedir1/page-templates/template-header.php: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /vendor/myclabs/deep-copy/doc/clone.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shopwp/wp-shopify/HEAD/vendor/myclabs/deep-copy/doc/clone.png -------------------------------------------------------------------------------- /vendor/myclabs/deep-copy/doc/graph.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shopwp/wp-shopify/HEAD/vendor/myclabs/deep-copy/doc/graph.png -------------------------------------------------------------------------------- /tests/phpunit/data/themedir1/camelCase/index.php: -------------------------------------------------------------------------------- 1 | 8 | -------------------------------------------------------------------------------- /tests/phpunit/data/themedir1/theme1/index.php: -------------------------------------------------------------------------------- 1 | 8 | -------------------------------------------------------------------------------- /admin/partials/wps-admin-notices.php: -------------------------------------------------------------------------------- 1 |
2 |
3 | -------------------------------------------------------------------------------- /tests/phpunit/data/themedir1/sandbox/functions.php: -------------------------------------------------------------------------------- 1 | 8 | -------------------------------------------------------------------------------- /tests/phpunit/data/themedir1/theme1-dupe/index.php: -------------------------------------------------------------------------------- 1 | 8 | -------------------------------------------------------------------------------- /tests/phpunit/data/themedir1/theme1/functions.php: -------------------------------------------------------------------------------- 1 | 8 | -------------------------------------------------------------------------------- /public/css/app/base/_fallbacks.scss: -------------------------------------------------------------------------------- 1 | .flexboxtweener { 2 | .wps-related-products { 3 | // margin-top: -100px; 4 | padding-top: 0; 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /tests/phpunit/data/themedir1/theme1-dupe/functions.php: -------------------------------------------------------------------------------- 1 | 8 | -------------------------------------------------------------------------------- /tests/mock-data/tags/tag.json: -------------------------------------------------------------------------------- 1 | { 2 | "tag_id": 22343234234, 3 | "product_id": 1403917041687, 4 | "post_id": 18361, 5 | "tag": "nesciunt NEW NEW" 6 | } 7 | -------------------------------------------------------------------------------- /public/imgs/icon-arrow-dropdown.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/phpunit/data/themedir1/page-templates/template-top-level-post-types.php: -------------------------------------------------------------------------------- 1 | WP_Shopify.nonce_api; 7 | 8 | 9 | export { 10 | nonce_api 11 | } 12 | -------------------------------------------------------------------------------- /tests/phpunit/data/themedir1/page-templates/38766/trailing-comma-post-types.php: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /vendor/composer/autoload_namespaces.php: -------------------------------------------------------------------------------- 1 | cloned = true; 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /tests/mock-data/option-sync-insert.json: -------------------------------------------------------------------------------- 1 | { 2 | "id": 1871955394583, 3 | "product_id": 1403917762583, 4 | "name": "😃 Size", 5 | "position": 1, 6 | "values": [ 7 | "Extra Small", 8 | "Small", 9 | "Medium", 10 | "Large" 11 | ] 12 | } 13 | -------------------------------------------------------------------------------- /vendor/gerardojbaez/money/.editorconfig: -------------------------------------------------------------------------------- 1 | root = true 2 | 3 | [*] 4 | indent_style = space 5 | indent_size = 4 6 | charset = utf-8 7 | trim_trailing_whitespace = true 8 | insert_final_newline = true 9 | 10 | [*.yml] 11 | indent_style = tab 12 | indent_size = 2 13 | -------------------------------------------------------------------------------- /public/js/app/plugin/plugin.js: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | WP Shopify jQuery Plugin for manipulating front-end cart experience 4 | 5 | */ 6 | function getPluginInstance() { 7 | } 8 | 9 | function initPlugin() {} 10 | 11 | export { 12 | initPlugin, 13 | getPluginInstance 14 | }; 15 | -------------------------------------------------------------------------------- /public/imgs/icon-spinner.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /public/css/app/core.scss: -------------------------------------------------------------------------------- 1 | @import "utilities/functions"; 2 | @import "utilities/variables"; 3 | @import "utilities/colors"; 4 | @import "utilities/mixins"; 5 | @import "base/global"; 6 | @import "base/state"; 7 | @import "components/cart"; 8 | 9 | body { background: inherit; } 10 | -------------------------------------------------------------------------------- /tests/phpunit/data/themedir1/page-templates/38766/tilde-post-types.php: -------------------------------------------------------------------------------- 1 | { 9 | return gulp.parallel('clean:free', 'clean:pro', 'clean:free:repo', 'clean:tmp')(done); 10 | }); 11 | -------------------------------------------------------------------------------- /public/imgs/icon-success.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/mock-data/options/option.json: -------------------------------------------------------------------------------- 1 | { 2 | "id": 18719553945833333, 3 | "product_id": 1403917533207, 4 | "name": "Mock Option Title", 5 | "position": 1, 6 | "values": [ 7 | "Mock Option Value 1", 8 | "Mock Option Value 2", 9 | "Mock Option Value 3" 10 | ] 11 | } 12 | -------------------------------------------------------------------------------- /classes/class-routes.php: -------------------------------------------------------------------------------- 1 | { 11 | 12 | return del([ 13 | config.folders.tmp 14 | ], { force: true }); 15 | 16 | }); 17 | -------------------------------------------------------------------------------- /tests/mock-data/collects/collect.json: -------------------------------------------------------------------------------- 1 | { 2 | "id": 94886093783279999999, 3 | "product_id": 1403916746775, 4 | "collection_id": 5570953239, 5 | "featured": 0, 6 | "position": 1, 7 | "sort_value": 1, 8 | "created_at": "2018-08-14 14:49:23", 9 | "updated_at": "2018-08-14 14:49:23" 10 | } 11 | -------------------------------------------------------------------------------- /vendor/gerardojbaez/money/phpunit.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | ./tests/ 6 | 7 | 8 | -------------------------------------------------------------------------------- /vendor/myclabs/deep-copy/fixtures/f004/UnclonableItem.php: -------------------------------------------------------------------------------- 1 | { 11 | 12 | return del([ 13 | config.files.buildProContent 14 | ], { force: true }); 15 | 16 | }); 17 | -------------------------------------------------------------------------------- /gulp/tasks/server.js: -------------------------------------------------------------------------------- 1 | //////////// 2 | // Server // 3 | //////////// 4 | 5 | import gulp from 'gulp'; 6 | import config from '../config'; 7 | 8 | gulp.task('server', (done) => { 9 | 10 | config.bs.init({ 11 | proxy: config.serverName, 12 | notify: false 13 | }); 14 | 15 | done(); 16 | 17 | }); 18 | -------------------------------------------------------------------------------- /gulp/tasks/clean-free-repo.js: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | Clears out Free repo folder 4 | 5 | */ 6 | import gulp from 'gulp'; 7 | import config from '../config'; 8 | import del from 'del'; 9 | 10 | gulp.task('clean:free:repo', done => { 11 | 12 | return del([ 13 | config.folders.freeRepo 14 | ], { force: true }); 15 | 16 | }); 17 | -------------------------------------------------------------------------------- /tests/mock-data/collect-sync-insert.json: -------------------------------------------------------------------------------- 1 | { 2 | "id": 9488609378327, 3 | "collection_id": 5570953239, 4 | "product_id": 1403916746775, 5 | "featured": false, 6 | "created_at": "2018-08-14T09:49:23-05:00", 7 | "updated_at": "2018-08-14T09:49:23-05:00", 8 | "position": 1, 9 | "sort_value": "0000000001" 10 | } 11 | -------------------------------------------------------------------------------- /tests/mock-data/options/option-update.json: -------------------------------------------------------------------------------- 1 | { 2 | "id": 1871955132439, 3 | "product_id": 1403917533207, 4 | "name": "Mock Option Title UPDATED", 5 | "position": 1, 6 | "values": [ 7 | "Mock Option Value 1 UPDATED", 8 | "Mock Option Value 2 UPDATED", 9 | "Mock Option Value 3 UPDATED" 10 | ] 11 | } 12 | -------------------------------------------------------------------------------- /vendor/myclabs/deep-copy/fixtures/f007/FooDateInterval.php: -------------------------------------------------------------------------------- 1 | cloned = true; 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /vendor/myclabs/deep-copy/fixtures/f007/FooDateTimeZone.php: -------------------------------------------------------------------------------- 1 | cloned = true; 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /vendor/myclabs/deep-copy/src/DeepCopy/TypeFilter/TypeFilter.php: -------------------------------------------------------------------------------- 1 | foo = $foo; 12 | } 13 | 14 | public function getFoo() 15 | { 16 | return $this->foo; 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /tests/phpunit/data/themedir1/subdir/theme2/style.css: -------------------------------------------------------------------------------- 1 | /* 2 | Theme Name: My Subdir Theme 3 | Theme URI: http://example.org/ 4 | Description: An example theme in a sub directory 5 | Version: 0.1 6 | Author: Mr. WordPress 7 | Author URI: http://wordpress.org/ 8 | 9 | This is just a stub to test the loading of the above metadata. 10 | 11 | */ -------------------------------------------------------------------------------- /vendor/myclabs/deep-copy/src/DeepCopy/Matcher/Matcher.php: -------------------------------------------------------------------------------- 1 | { 11 | return del([ 12 | config.files.buildProContent 13 | ], { force: true }); 14 | }); 15 | -------------------------------------------------------------------------------- /gulp/tasks/clean-free.js: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | Clears out free version build folder (used for debugging / productivity) 4 | 5 | */ 6 | import gulp from 'gulp'; 7 | import config from '../config'; 8 | import del from 'del'; 9 | 10 | gulp.task('clean:free', () => { 11 | return del([ 12 | config.files.buildFreeContent 13 | ], { force: true }); 14 | }); 15 | -------------------------------------------------------------------------------- /tests/phpunit/data/themedir1/subdir/theme with spaces/style.css: -------------------------------------------------------------------------------- 1 | /* 2 | Theme Name: Theme with Spaces in the Directory 3 | Theme URI: http://example.org/ 4 | Description: An example theme in a sub directory 5 | Version: 0.1 6 | Author: Mr. WordPress 7 | Author URI: http://wordpress.org/ 8 | 9 | This is just a stub to test the loading of the above metadata. 10 | 11 | */ -------------------------------------------------------------------------------- /gulp/tasks/images-admin.js: -------------------------------------------------------------------------------- 1 | ////////////////// 2 | // Images Admin // 3 | ////////////////// 4 | 5 | import gulp from 'gulp'; 6 | import config from '../config'; 7 | import svgo from 'gulp-svgo'; 8 | 9 | gulp.task('images-admin', () => { 10 | return gulp.src(config.files.svgsAdmin) 11 | .pipe(svgo()) 12 | .pipe(gulp.dest(config.folders.svgsAdmin)); 13 | }); 14 | -------------------------------------------------------------------------------- /vendor/myclabs/deep-copy/fixtures/f001/A.php: -------------------------------------------------------------------------------- 1 | aProp; 12 | } 13 | 14 | public function setAProp($prop) 15 | { 16 | $this->aProp = $prop; 17 | 18 | return $this; 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /gulp/tasks/images-public.js: -------------------------------------------------------------------------------- 1 | /////////////////// 2 | // Images Public // 3 | /////////////////// 4 | 5 | import gulp from 'gulp'; 6 | import config from '../config'; 7 | import svgo from 'gulp-svgo'; 8 | 9 | gulp.task('images-public', () => { 10 | return gulp.src(config.files.svgsPublic) 11 | .pipe(svgo()) 12 | .pipe(gulp.dest(config.folders.svgsPublic)); 13 | }); 14 | -------------------------------------------------------------------------------- /vendor/myclabs/deep-copy/src/DeepCopy/TypeFilter/ShallowCopyFilter.php: -------------------------------------------------------------------------------- 1 | bProp; 12 | } 13 | 14 | public function setBProp($prop) 15 | { 16 | $this->bProp = $prop; 17 | 18 | return $this; 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /classes/utils/class-posts.php: -------------------------------------------------------------------------------- 1 | Templates = $Templates; 15 | } 16 | 17 | 18 | /* 19 | 20 | 21 | 22 | */ 23 | public function test() { 24 | 25 | echo 'test'; 26 | 27 | } 28 | 29 | 30 | } 31 | -------------------------------------------------------------------------------- /tests/mock-data/collections/collection-to-delete.json: -------------------------------------------------------------------------------- 1 | { 2 | "id": 13729693719, 3 | "post_id": 18367, 4 | "title": "aaaaa", 5 | "handle": "aaaaa-1", 6 | "body_html": "aaaaa", 7 | "image": "", 8 | "metafield": "", 9 | "published": "", 10 | "published_scope": "global", 11 | "sort_order": "best-selling", 12 | "published_at": "2017-12-10 23:15:50", 13 | "updated_at": "2018-08-14 03:10:01" 14 | } 15 | -------------------------------------------------------------------------------- /tests/mock-data/image-update.json: -------------------------------------------------------------------------------- 1 | { 2 | "id": 3843485794327, 3 | "product_id": 1403917533207, 4 | "position": 0, 5 | "created_at": null, 6 | "updated_at": null, 7 | "alt": "Mock Image Alt Update 😃d", 8 | "width": 323, 9 | "height": 434, 10 | "src": "\/\/cdn.shopify.com\/s\/assets\/shopify_shirt-39bb555874ecaeed0a1170417d58bbcf792f7ceb56acfe758384f788710ba635.png", 11 | "variant_ids": [] 12 | } 13 | -------------------------------------------------------------------------------- /vendor/composer/autoload_files.php: -------------------------------------------------------------------------------- 1 | $vendorDir . '/gerardojbaez/money/src/helpers.php', 10 | '6124b4c8570aa390c21fafd04a26c69f' => $vendorDir . '/myclabs/deep-copy/src/DeepCopy/deep_copy.php', 11 | ); 12 | -------------------------------------------------------------------------------- /public/templates/partials/pagination/end.php: -------------------------------------------------------------------------------- 1 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /public/templates/partials/products/single/end.php: -------------------------------------------------------------------------------- 1 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /tests/mock-data/images/image.json: -------------------------------------------------------------------------------- 1 | { 2 | "id": 384348579432799999, 3 | "product_id": 1403917533207, 4 | "position": 0, 5 | "created_at": null, 6 | "updated_at": null, 7 | "alt": "Mock UDPATED Image Alt", 8 | "width": 323, 9 | "height": 434, 10 | "src": "\/\/cdn.shopify.com\/s\/assets\/shopify_shirt-39bb555874ecaeed0a1170417d58bbcf792f7ceb56acfe758384f788710ba635.png", 11 | "variant_ids": [] 12 | } 13 | -------------------------------------------------------------------------------- /tests/phpunit/data/themedir1/theme1-dupe/style.css: -------------------------------------------------------------------------------- 1 | /* 2 | Theme Name: My Theme 3 | Theme URI: http://example.org/ 4 | Description: This theme has the same Theme Name as theme1 5 | Version: 1.4 6 | Author: Minnie Bannister 7 | Author URI: http://example.com/ 8 | 9 | Kubrick v1.5 10 | http://binarybonsai.com/kubrick/ 11 | 12 | This is just a stub to test the loading of the above metadata. 13 | 14 | */ 15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /classes/utils/class-urls.php: -------------------------------------------------------------------------------- 1 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /public/templates/partials/collections/single/end.php: -------------------------------------------------------------------------------- 1 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /tests/mock-data/collection-sync-custom-insert.json: -------------------------------------------------------------------------------- 1 | { 2 | "id": 13729693719, 3 | "handle": "aaaaa-1", 4 | "title": "aaaaa", 5 | "updated_at": "2018-08-13T22:10:01-05:00", 6 | "body_html": "aaaaa", 7 | "published_at": "2017-12-10T17:15:50-06:00", 8 | "sort_order": "best-selling", 9 | "template_suffix": null, 10 | "published_scope": "global", 11 | "admin_graphql_api_id": "gid://shopify/Collection/13729693719" 12 | } 13 | -------------------------------------------------------------------------------- /public/templates/partials/products/loop/end.php: -------------------------------------------------------------------------------- 1 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /public/templates/partials/collections/loop/end.php: -------------------------------------------------------------------------------- 1 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /admin/js/app/_tests/unit/ws/ws-api-endpoints.unit.test.js: -------------------------------------------------------------------------------- 1 | import { 2 | endpointSettingAddToCartColor 3 | } from '../../../ws/api/api-endpoints'; 4 | 5 | 6 | it('Should return correct settings add to cart color endpoint', () => { 7 | 8 | const result = endpointSettingAddToCartColor(); 9 | 10 | expect(result) 11 | .toBeString() 12 | .toEqual('http://wpshopify.loc/api/wpshopify/v1/settings/products_add_to_cart_color'); 13 | 14 | }); 15 | -------------------------------------------------------------------------------- /public/js/app/utils/utils-settings.js: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | hasEnableCustomCheckoutDomain 4 | 5 | */ 6 | function hasEnableCustomCheckoutDomain() { 7 | return WP_Shopify.settings.enableCustomCheckoutDomain; 8 | } 9 | 10 | 11 | /* 12 | 13 | hasCurrencyCode 14 | 15 | */ 16 | function hasCurrencyCode() { 17 | return WP_Shopify.settings.hasCurrencyCode; 18 | } 19 | 20 | 21 | export { 22 | hasEnableCustomCheckoutDomain, 23 | hasCurrencyCode 24 | } 25 | -------------------------------------------------------------------------------- /public/css/app/utilities/_colors.scss: -------------------------------------------------------------------------------- 1 | $colors: ( 2 | darkblue: #14273B, 3 | lightblue: #093D55, 4 | lightgreen: #69C7BF, 5 | darkgreen: #52A7A6, 6 | grey: #727272, 7 | base: #333333, 8 | white: #ffffff, 9 | offwhite: #f3f3f3, 10 | links: #52a7a6, 11 | linksHover: #52A7A6, 12 | buttonPrimary: #69C7BF, 13 | buttonSecondary: #52A7A6, 14 | success: #8df6b2, 15 | info: #d6f2ff, 16 | warning: #ffeac6, 17 | error: #ffd3d3 18 | ); 19 | -------------------------------------------------------------------------------- /classes/factories/db/class-db-factory.php: -------------------------------------------------------------------------------- 1 | { 2 | return localStorage.setItem(name, value); 3 | } 4 | 5 | const getCache = (name) => { 6 | return localStorage.getItem(name); 7 | } 8 | 9 | const deleteCache = (name = false) => { 10 | 11 | if (!name) { 12 | return localStorage.clear(); 13 | } 14 | 15 | return localStorage.removeItem(name); 16 | 17 | } 18 | 19 | export { 20 | setCache, 21 | getCache, 22 | deleteCache 23 | } 24 | -------------------------------------------------------------------------------- /public/templates/partials/collections/loop/item-end.php: -------------------------------------------------------------------------------- 1 | 20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /classes/factories/db/class-collects-factory.php: -------------------------------------------------------------------------------- 1 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /public/templates/partials/products/single/gallery-end.php: -------------------------------------------------------------------------------- 1 | 20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /classes/factories/db/class-images-factory.php: -------------------------------------------------------------------------------- 1 | { 12 | 13 | return gulp 14 | .src( config.files.jsEntryAdmin ) 15 | .pipe( webpackStream( config.webpackConfig(), webpack) ) 16 | .pipe( gulp.dest(config.folders.dist) ); 17 | 18 | }); 19 | -------------------------------------------------------------------------------- /tests/phpunit/data/themedir1/sandbox/style.css: -------------------------------------------------------------------------------- 1 | /* 2 | THEME NAME: Sandbox 3 | THEME URI: http://www.plaintxt.org/themes/sandbox/ 4 | DESCRIPTION: A theme with powerful, semantic CSS selectors and the ability to add new skins. 5 | VERSION: 0.6.1-wpcom 6 | AUTHOR: Andy Skelton & Scott Allan Wallick 7 | AUTHOR URI: 8 | 9 | This is a dummy theme for testing the above metadata. 10 | */ 11 | 12 | -------------------------------------------------------------------------------- /vendor/gerardojbaez/money/src/helpers.php: -------------------------------------------------------------------------------- 1 | format(); 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /classes/factories/class-checkouts-factory.php: -------------------------------------------------------------------------------- 1 | 20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /tests/mock-data/collection-smart.json: -------------------------------------------------------------------------------- 1 | { 2 | "id": 10801610775, 3 | "title": "11collection", 4 | "handle": "11collection", 5 | "body_html": "11collection", 6 | "image": "", 7 | "rules": [ 8 | { 9 | "column": "vendor", 10 | "relation": "equals", 11 | "condition": "Apple" 12 | } 13 | ], 14 | "disjunctive": "", 15 | "sort_order": "best-selling", 16 | "published_at": "2017-10-21 19:50:06", 17 | "updated_at": "2018-07-21 20:17:22" 18 | } 19 | -------------------------------------------------------------------------------- /classes/factories/class-routes-factory.php: -------------------------------------------------------------------------------- 1 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /public/templates/partials/products/loop/item-link-end.php: -------------------------------------------------------------------------------- 1 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /public/templates/partials/products/single/thumbs-end.php: -------------------------------------------------------------------------------- 1 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /classes/factories/class-i18n-factory.php: -------------------------------------------------------------------------------- 1 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /vendor/myclabs/deep-copy/fixtures/f003/Foo.php: -------------------------------------------------------------------------------- 1 | name = $name; 13 | } 14 | 15 | public function getProp() 16 | { 17 | return $this->prop; 18 | } 19 | 20 | public function setProp($prop) 21 | { 22 | $this->prop = $prop; 23 | 24 | return $this; 25 | } 26 | } -------------------------------------------------------------------------------- /vendor/myclabs/deep-copy/src/DeepCopy/Filter/Filter.php: -------------------------------------------------------------------------------- 1 | Kubrick. 5 | Version: 1.6 6 | Author: Michael Heilemann 7 | Author URI: http://binarybonsai.com/ 8 | 9 | Kubrick v1.5 10 | http://binarybonsai.com/kubrick/ 11 | 12 | This is just a stub to test the loading of the above metadata. 13 | 14 | */ 15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /vendor/myclabs/deep-copy/fixtures/f006/A.php: -------------------------------------------------------------------------------- 1 | aProp; 13 | } 14 | 15 | public function setAProp($prop) 16 | { 17 | $this->aProp = $prop; 18 | 19 | return $this; 20 | } 21 | 22 | public function __clone() 23 | { 24 | $this->cloned = true; 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /vendor/myclabs/deep-copy/fixtures/f006/B.php: -------------------------------------------------------------------------------- 1 | bProp; 13 | } 14 | 15 | public function setBProp($prop) 16 | { 17 | $this->bProp = $prop; 18 | 19 | return $this; 20 | } 21 | 22 | public function __clone() 23 | { 24 | $this->cloned = true; 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /classes/factories/class-config-factory.php: -------------------------------------------------------------------------------- 1 | 20 | 21 |
22 | -------------------------------------------------------------------------------- /public/templates/partials/products/action-groups/end.php: -------------------------------------------------------------------------------- 1 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /tests/render/test-render-products.php: -------------------------------------------------------------------------------- 1 | assertEquals('1', 1); 27 | } 28 | 29 | 30 | } 31 | -------------------------------------------------------------------------------- /.babelrc: -------------------------------------------------------------------------------- 1 | { 2 | "presets": [ 3 | [ 4 | "@babel/preset-env", 5 | { 6 | "useBuiltIns": "entry" 7 | } 8 | ] 9 | , 10 | "@babel/preset-react" 11 | ], 12 | "plugins": [ 13 | "@babel/plugin-transform-regenerator", 14 | "@babel/plugin-transform-runtime", 15 | "@babel/plugin-syntax-dynamic-import", 16 | "@babel/plugin-syntax-import-meta", 17 | "@babel/plugin-proposal-class-properties", 18 | "@babel/plugin-proposal-json-strings" 19 | ] 20 | } 21 | -------------------------------------------------------------------------------- /classes/factories/db/class-collections-custom-factory.php: -------------------------------------------------------------------------------- 1 | { 11 | 12 | if (config.isBuilding) { 13 | gulp.series('js', 'css-admin', 'css-public', 'css-public-core', 'css-public-grid', 'images-public', 'images-admin'); 14 | 15 | } else { 16 | gulp.series( gulp.parallel('js', 'css-admin', 'css-public', 'css-public-core', 'css-public-grid'), 'server', 'watch' )(done); 17 | } 18 | 19 | }); 20 | -------------------------------------------------------------------------------- /gulp/tasks/js-admin.js: -------------------------------------------------------------------------------- 1 | //////// 2 | // JS // 3 | //////// 4 | 5 | import webpack from 'webpack'; 6 | import gulp from 'gulp'; 7 | import config from '../config'; 8 | import webpackStream from 'webpack-stream'; 9 | import uglify from 'gulp-uglify'; 10 | 11 | gulp.task('js-admin', done => { 12 | 13 | return gulp 14 | .src( config.files.jsEntryAdmin ) 15 | .pipe( webpackStream( config.webpackConfig(config.names.jsAdmin), webpack) ) 16 | .pipe( gulp.dest(config.folders.dist) ); 17 | 18 | }); 19 | -------------------------------------------------------------------------------- /gulp/tasks/js-public.js: -------------------------------------------------------------------------------- 1 | //////// 2 | // JS // 3 | //////// 4 | 5 | import webpack from 'webpack'; 6 | import gulp from 'gulp'; 7 | import config from '../config'; 8 | import webpackStream from 'webpack-stream'; 9 | import uglify from 'gulp-uglify'; 10 | 11 | gulp.task('js-public', done => { 12 | 13 | return gulp 14 | .src( config.files.jsEntryPublic ) 15 | .pipe( webpackStream(config.webpackConfig(config.names.jsPublic), webpack ) ) 16 | .pipe( gulp.dest(config.folders.dist) ); 17 | 18 | }); 19 | -------------------------------------------------------------------------------- /classes/factories/db/class-settings-connection-factory.php: -------------------------------------------------------------------------------- 1 | assertInternalType('object', $build); 19 | $this->assertContains('WPS\\', get_class($build)); 20 | 21 | } 22 | 23 | $this->assertCount(47, $builds); 24 | 25 | } 26 | 27 | } 28 | -------------------------------------------------------------------------------- /classes/factories/class-deactivator-factory.php: -------------------------------------------------------------------------------- 1 | 20 | 21 |