Version Description
[2019-01-24] =
- Fix: Improve integration with new WordPress block editor.
- Fix: Improve compatibility with PHP 7.2+
Download this release
Release Info
| Developer | JustinSainton |
| Plugin | |
| Version | 3.14.0 |
| Comparing to | |
| See all releases | |
Code changes from version 3.13.1 to 3.14.0
- CONTRIBUTING.md +28 -0
- Gruntfile.js +258 -0
- package.json +35 -0
- readme.txt +8 -3
- wp-shopping-cart.php +1 -1
- wpsc-admin/display-update.page.php +2 -2
- wpsc-admin/includes/display-items-functions.php +2 -2
- wpsc-core/wpsc-constants.php +3 -3
- wpsc-core/wpsc-functions.php +2 -4
- wpsc-includes/cart.class.php +2 -2
- wpsc-includes/processing.functions.php +10 -9
- wpsc-includes/product-template.php +2 -1
- wpsc-includes/rest-api/wpsc-rest-categories-controller.php +0 -7
- wpsc-includes/rest-api/wpsc-rest-products-controller.php +0 -9
- wpsc-includes/rest-api/wpsc-rest-tags-controller.php +0 -7
- wpsc-includes/wpsc-rest-api.class.php +0 -10
CONTRIBUTING.md
ADDED
|
@@ -0,0 +1,28 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# Contributing to WP eCommerce
|
| 2 |
+
|
| 3 |
+
Howdy! We're glad you're interested in contributing to WP eCommerce. Read on to make sure you follow all the steps required to successfully submit an issue or patch to the repository.
|
| 4 |
+
|
| 5 |
+
*This is not a place to submit support requests, this is a code repository to submit code bugs and code patches. Support tickets can be created here: https://wordpress.org/support/plugin/wp-e-commerce*
|
| 6 |
+
|
| 7 |
+
Before you submit an issue
|
| 8 |
+
---
|
| 9 |
+
1. Check for duplicate issues in the repo
|
| 10 |
+
2. Make sure you have the latest version of WP eCommerce running in your local enviroment
|
| 11 |
+
3. Fork the WP eCommerce repo in order to create Pull Requests.
|
| 12 |
+
|
| 13 |
+
Reporting a bug
|
| 14 |
+
---
|
| 15 |
+
1. Specify the version number for both WordPress and WP eCommerce
|
| 16 |
+
2. Describe the issue with great detail, be specific about the problem you see.
|
| 17 |
+
3. If this is a browser issue, make sure to mention which browser you have trouble on.
|
| 18 |
+
4. If this is a visual bug, please make sure to add a screenshot.
|
| 19 |
+
5. if you create a Pull Request for this issue, make sure to attach the Pull Request created to the issue.
|
| 20 |
+
|
| 21 |
+
Branch Strategy
|
| 22 |
+
---
|
| 23 |
+
Master will be in sync with the latest release, which will also have its own branch (`branch-x.x.x`). Features should go in `features/*` branches, which then merge into `branch-x.x.x` branch, which then merges to master upon release. Our goal is to keep from merging directly to master. To determine the next branch to fork/PR, review the [Development status](https://github.com/wp-e-commerce/WP-e-Commerce#development-status).
|
| 24 |
+
|
| 25 |
+
Resources
|
| 26 |
+
---
|
| 27 |
+
[Labels and Workflow](https://github.com/wp-e-commerce/WP-e-Commerce/wiki/Issue-Labels-and-Workflow)
|
| 28 |
+
|
Gruntfile.js
ADDED
|
@@ -0,0 +1,258 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
/*global module:false, require:false */
|
| 2 |
+
|
| 3 |
+
module.exports = function( grunt ) {
|
| 4 |
+
'use strict';
|
| 5 |
+
|
| 6 |
+
require('matchdep').filterDev('grunt-*').forEach( grunt.loadNpmTasks );
|
| 7 |
+
|
| 8 |
+
var bannerTemplate = '/**\n' + ' * <%= pkg.title %> - v<%= pkg.version %> - <%= grunt.template.today("yyyy-mm-dd") %>\n' + ' * <%= pkg.author.url %>\n' + ' *\n' + ' * Copyright (c) <%= grunt.template.today("yyyy") %>;\n' + ' * Licensed GPLv2+\n' + ' */\n';
|
| 9 |
+
|
| 10 |
+
var compactBannerTemplate = '/** ' + '<%= pkg.title %> - v<%= pkg.version %> - <%= grunt.template.today("yyyy-mm-dd") %> | <%= pkg.author.url %> | Copyright (c) <%= grunt.template.today("yyyy") %>; | Licensed GPLv2+' + ' **/\n';
|
| 11 |
+
|
| 12 |
+
grunt.initConfig({
|
| 13 |
+
pkg: grunt.file.readJSON('package.json'),
|
| 14 |
+
|
| 15 |
+
asciify: {
|
| 16 |
+
banner: {
|
| 17 |
+
text : 'WP eCommerce',
|
| 18 |
+
options : {
|
| 19 |
+
font : 'speed',
|
| 20 |
+
log : true
|
| 21 |
+
}
|
| 22 |
+
}
|
| 23 |
+
},
|
| 24 |
+
|
| 25 |
+
jshint: {
|
| 26 |
+
options: {
|
| 27 |
+
jshintrc: '.jshintrc'
|
| 28 |
+
},
|
| 29 |
+
|
| 30 |
+
all: {
|
| 31 |
+
src: [
|
| 32 |
+
'Gruntfile.js',
|
| 33 |
+
'wpsc-admin/js/*.js',
|
| 34 |
+
'wpsc-components/marketplace-core-v1/static/*.js',
|
| 35 |
+
'wpsc-components/merchant-core-v3/gateways/*.js',
|
| 36 |
+
'wpsc-components/theme-engine-v2/admin/js/*.js',
|
| 37 |
+
'wpsc-components/theme-engine-v2/theming/assets/js/*.js',
|
| 38 |
+
'wpsc-components/merchant-core-v3/*.js',
|
| 39 |
+
'wpsc-core/js/*.js',
|
| 40 |
+
'!wpsc-core/js/tinymce/*.js',
|
| 41 |
+
'!wpsc-core/js/*-min.js',
|
| 42 |
+
'!wpsc-core/js/jquery*.js',
|
| 43 |
+
'!wpsc-admin/js/admin-legacy.js',
|
| 44 |
+
'!wpsc-admin/js/jquery-*.js',
|
| 45 |
+
'!wpsc-components/theme-engine-v2/admin/js/select2*.js',
|
| 46 |
+
'!wpsc-components/theme-engine-v2/theming/assets/js/jquery.*.js',
|
| 47 |
+
'!*.min.js'
|
| 48 |
+
]
|
| 49 |
+
},
|
| 50 |
+
watch: {
|
| 51 |
+
src : [
|
| 52 |
+
'Gruntfile.js',
|
| 53 |
+
'wpsc-components/theme-engine-v2/theming/assets/js/**/*.js',
|
| 54 |
+
'!wpsc-components/theme-engine-v2/theming/assets/js/jquery.*.js',
|
| 55 |
+
'!wpsc-components/theme-engine-v2/theming/assets/js/floatlabel.js',
|
| 56 |
+
'!wpsc-components/theme-engine-v2/theming/assets/js/fluidbox.js',
|
| 57 |
+
'!wpsc-components/theme-engine-v2/theming/assets/js/cart-notifications.js',
|
| 58 |
+
'!**/*.min.js'
|
| 59 |
+
]
|
| 60 |
+
}
|
| 61 |
+
},
|
| 62 |
+
|
| 63 |
+
browserify: {
|
| 64 |
+
options: {
|
| 65 |
+
banner: bannerTemplate,
|
| 66 |
+
stripBanners: true,
|
| 67 |
+
transform: [
|
| 68 |
+
'babelify',
|
| 69 |
+
'browserify-shim'
|
| 70 |
+
]
|
| 71 |
+
},
|
| 72 |
+
dist: { files: {
|
| 73 |
+
'wpsc-components/theme-engine-v2/theming/assets/js/cart-notifications.js' : 'wpsc-components/theme-engine-v2/theming/assets/js/components/cart-notifications-main.js'
|
| 74 |
+
} }
|
| 75 |
+
},
|
| 76 |
+
|
| 77 |
+
uglify: {
|
| 78 |
+
all: {
|
| 79 |
+
options: {
|
| 80 |
+
banner: compactBannerTemplate,
|
| 81 |
+
mangle: false
|
| 82 |
+
},
|
| 83 |
+
files: [{
|
| 84 |
+
expand: true,
|
| 85 |
+
cwd: 'wpsc-components/theme-engine-v2/theming/assets/js',
|
| 86 |
+
src: ['*.js', '!*.min.js'],
|
| 87 |
+
dest: 'wpsc-components/theme-engine-v2/theming/assets/js',
|
| 88 |
+
extDot: 'last',
|
| 89 |
+
ext: '.min.js'
|
| 90 |
+
}]
|
| 91 |
+
},
|
| 92 |
+
noBanner : {
|
| 93 |
+
options: {
|
| 94 |
+
mangle: false
|
| 95 |
+
},
|
| 96 |
+
files: [{
|
| 97 |
+
expand: true,
|
| 98 |
+
cwd: 'wpsc-components/theme-engine-v2/theming/assets/js',
|
| 99 |
+
src: ['jquery.*.js', '!jquery.*.min.js'],
|
| 100 |
+
dest: 'wpsc-components/theme-engine-v2/theming/assets/js',
|
| 101 |
+
extDot: 'last',
|
| 102 |
+
ext: '.min.js'
|
| 103 |
+
}]
|
| 104 |
+
}
|
| 105 |
+
},
|
| 106 |
+
|
| 107 |
+
sass: {
|
| 108 |
+
dist: {
|
| 109 |
+
options: {
|
| 110 |
+
style: 'expanded',
|
| 111 |
+
lineNumbers: false
|
| 112 |
+
},
|
| 113 |
+
files: [{
|
| 114 |
+
expand: true,
|
| 115 |
+
cwd: 'wpsc-components/theme-engine-v2/theming/assets/scss',
|
| 116 |
+
src: ['**/*.scss'],
|
| 117 |
+
dest: 'wpsc-components/theme-engine-v2/theming/assets/css/',
|
| 118 |
+
ext: '.css'
|
| 119 |
+
}]
|
| 120 |
+
}
|
| 121 |
+
},
|
| 122 |
+
|
| 123 |
+
cmq: {
|
| 124 |
+
options: {
|
| 125 |
+
log: false
|
| 126 |
+
},
|
| 127 |
+
dist: {
|
| 128 |
+
files: [{
|
| 129 |
+
expand: true,
|
| 130 |
+
cwd: 'wpsc-components/theme-engine-v2/theming/assets/css',
|
| 131 |
+
src: ['*.css', '!*.min.css', '!wpsc-components/theme-engine-v2/theming/assets/css/font-awesome-ie7.css'],
|
| 132 |
+
dest: 'wpsc-components/theme-engine-v2/theming/assets/css/'
|
| 133 |
+
}]
|
| 134 |
+
}
|
| 135 |
+
},
|
| 136 |
+
|
| 137 |
+
cssmin: {
|
| 138 |
+
target: {
|
| 139 |
+
files: [{
|
| 140 |
+
expand: true,
|
| 141 |
+
cwd: 'wpsc-components/theme-engine-v2/theming/assets/css',
|
| 142 |
+
src: ['*.css', '!*.min.css', '!wpsc-components/theme-engine-v2/theming/assets/css/font-awesome-ie7.css'],
|
| 143 |
+
dest: 'wpsc-components/theme-engine-v2/theming/assets/css',
|
| 144 |
+
ext: '.min.css'
|
| 145 |
+
}]
|
| 146 |
+
}
|
| 147 |
+
},
|
| 148 |
+
|
| 149 |
+
// Check textdomain errors.
|
| 150 |
+
checktextdomain: {
|
| 151 |
+
options:{
|
| 152 |
+
text_domain: 'wp-e-commerce',
|
| 153 |
+
keywords: [
|
| 154 |
+
'__:1,2d',
|
| 155 |
+
'_e:1,2d',
|
| 156 |
+
'_x:1,2c,3d',
|
| 157 |
+
'esc_html__:1,2d',
|
| 158 |
+
'esc_html_e:1,2d',
|
| 159 |
+
'esc_html_x:1,2c,3d',
|
| 160 |
+
'esc_attr__:1,2d',
|
| 161 |
+
'esc_attr_e:1,2d',
|
| 162 |
+
'esc_attr_x:1,2c,3d',
|
| 163 |
+
'_ex:1,2c,3d',
|
| 164 |
+
'_n:1,2,4d',
|
| 165 |
+
'_nx:1,2,4c,5d',
|
| 166 |
+
'_n_noop:1,2,3d',
|
| 167 |
+
'_nx_noop:1,2,3c,4d'
|
| 168 |
+
]
|
| 169 |
+
},
|
| 170 |
+
files: {
|
| 171 |
+
src: [
|
| 172 |
+
'**/*.php', // Include all files
|
| 173 |
+
'!node_modules/**', // Exclude node_modules/
|
| 174 |
+
'!tests/**', // Exclude tests/
|
| 175 |
+
'!bin/**', // Exclude bin/
|
| 176 |
+
'!tmp/**' // Exclude tmp/
|
| 177 |
+
],
|
| 178 |
+
expand: true
|
| 179 |
+
}
|
| 180 |
+
},
|
| 181 |
+
|
| 182 |
+
makepot: {
|
| 183 |
+
target: {
|
| 184 |
+
options: {
|
| 185 |
+
domainPath: '/wpsc-languages/', // Where to save the POT file.
|
| 186 |
+
exclude: [
|
| 187 |
+
'tesst/.*',
|
| 188 |
+
'bin/.*',
|
| 189 |
+
'images/.*'
|
| 190 |
+
],
|
| 191 |
+
mainFile: 'wp-shopping-cart.php', // Main project file.
|
| 192 |
+
potFilename: 'wp-e-commerce.pot', // Name of the POT file.
|
| 193 |
+
potHeaders: {
|
| 194 |
+
poedit: true, // Includes common Poedit headers.
|
| 195 |
+
'x-poedit-keywordslist': true // Include a list of all possible gettext functions.
|
| 196 |
+
},
|
| 197 |
+
type: 'wp-plugin', // Type of project (wp-plugin or wp-theme).
|
| 198 |
+
updateTimestamp: true, // Whether the POT-Creation-Date should be updated without other changes.
|
| 199 |
+
processPot: function( pot ) {
|
| 200 |
+
pot.headers['report-msgid-bugs-to'] = 'https://wpecommerce.org/';
|
| 201 |
+
pot.headers['last-translator'] = 'WP-Translations (http://wp-translations.org/)';
|
| 202 |
+
pot.headers['language-team'] = 'WP-Translations <wpt@wp-translations.org>';
|
| 203 |
+
pot.headers.language = 'en_US';
|
| 204 |
+
return pot;
|
| 205 |
+
}
|
| 206 |
+
}
|
| 207 |
+
}
|
| 208 |
+
},
|
| 209 |
+
|
| 210 |
+
watch: {
|
| 211 |
+
css: {
|
| 212 |
+
files: ['wpsc-components/theme-engine-v2/theming/assets/scss/**/*.scss'],
|
| 213 |
+
tasks: ['css'],
|
| 214 |
+
options: {
|
| 215 |
+
spawn: false
|
| 216 |
+
}
|
| 217 |
+
},
|
| 218 |
+
js: {
|
| 219 |
+
// files: ['<%= jshint.watch.src %>'],
|
| 220 |
+
files: ['**/*.js', '!**/*.min.js'],
|
| 221 |
+
tasks: ['watchjs'],
|
| 222 |
+
options: {
|
| 223 |
+
debounceDelay: 500
|
| 224 |
+
}
|
| 225 |
+
}
|
| 226 |
+
}
|
| 227 |
+
|
| 228 |
+
});
|
| 229 |
+
|
| 230 |
+
grunt.registerTask('css', ['asciify', 'sass', 'cmq', 'cssmin']);
|
| 231 |
+
grunt.registerTask('js', ['asciify', 'jshint', 'browserify', 'uglify']);
|
| 232 |
+
grunt.registerTask('watchjs', ['asciify', 'jshint:watch', 'browserify', 'uglify']);
|
| 233 |
+
grunt.registerTask('default', ['asciify', 'js', 'css', 'makepot']);
|
| 234 |
+
|
| 235 |
+
/**
|
| 236 |
+
* PHP Code Sniffer using WordPress Coding Standards.
|
| 237 |
+
*
|
| 238 |
+
* @link https://github.com/WordPress-Coding-Standards/WordPress-Coding-Standards
|
| 239 |
+
*/
|
| 240 |
+
grunt.registerTask('phpcs', function() {
|
| 241 |
+
var done = this.async();
|
| 242 |
+
|
| 243 |
+
grunt.util.spawn({
|
| 244 |
+
cmd: 'phpcs',
|
| 245 |
+
args: [
|
| 246 |
+
'-p',
|
| 247 |
+
'-s',
|
| 248 |
+
'--standard=WordPress',
|
| 249 |
+
'--extensions=php',
|
| 250 |
+
'--ignore=*/node_modules/*,*/tests/*',
|
| 251 |
+
'--report-file=codesniffs.txt',
|
| 252 |
+
'.'
|
| 253 |
+
],
|
| 254 |
+
opts: { stdio: 'inherit' }
|
| 255 |
+
}, done);
|
| 256 |
+
});
|
| 257 |
+
|
| 258 |
+
};
|
package.json
ADDED
|
@@ -0,0 +1,35 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"name": "wp-e-commerce",
|
| 3 |
+
"title": "WP eCommerce",
|
| 4 |
+
"description": "The most popular independent eCommerce platform for WordPress",
|
| 5 |
+
"version": "3.14.0",
|
| 6 |
+
"license": "GPLv2",
|
| 7 |
+
"author": {
|
| 8 |
+
"name": "WP-e-Commerce",
|
| 9 |
+
"url": "https://wpecommerce.org/"
|
| 10 |
+
},
|
| 11 |
+
"private": true,
|
| 12 |
+
"devDependencies": {
|
| 13 |
+
"babelify": "^6.3.0",
|
| 14 |
+
"grunt": "^0.4.5",
|
| 15 |
+
"browserify": "^11.1.0",
|
| 16 |
+
"browserify-shim": "^3.8.10",
|
| 17 |
+
"grunt-asciify": "~0.2.2",
|
| 18 |
+
"grunt-checktextdomain": "^1.0.0",
|
| 19 |
+
"grunt-combine-media-queries": "^1.0.20",
|
| 20 |
+
"grunt-contrib-cssmin": "^0.9.0",
|
| 21 |
+
"grunt-contrib-jshint": "^0.11.0",
|
| 22 |
+
"grunt-contrib-sass": "^0.7.4",
|
| 23 |
+
"grunt-contrib-uglify": "^2.2.0",
|
| 24 |
+
"grunt-contrib-watch": "^0.6.1",
|
| 25 |
+
"grunt-exec": "^0.4.7",
|
| 26 |
+
"grunt-potomo": "^2.1.0",
|
| 27 |
+
"grunt-wp-i18n": "^0.4.9",
|
| 28 |
+
"grunt-browserify": "^4.0.1",
|
| 29 |
+
"load-grunt-tasks": "^0.2.1",
|
| 30 |
+
"matchdep": "^1.0.1"
|
| 31 |
+
},
|
| 32 |
+
"browserify-shim": {
|
| 33 |
+
"jquery": "global:jQuery"
|
| 34 |
+
}
|
| 35 |
+
}
|
readme.txt
CHANGED
|
@@ -2,9 +2,9 @@
|
|
| 2 |
Contributors: JustinSainton
|
| 3 |
Donate link: https://wpecommerce.org
|
| 4 |
Tags: e-commerce, digital downloads, wp-e-commerce, shop, cart, paypal, authorize, stock control, ecommerce, shipping, tax
|
| 5 |
-
Requires at least: 4.
|
| 6 |
-
Tested up to:
|
| 7 |
-
Stable tag: 3.
|
| 8 |
|
| 9 |
WP eCommerce is a free, powerful plugin that empowers you to sell anything online, quickly and easily.
|
| 10 |
|
|
@@ -36,6 +36,11 @@ After upgrading from earlier versions look for link "Update Store". This will up
|
|
| 36 |
|
| 37 |
== Changelog ==
|
| 38 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 39 |
= 3.13.1 [2017-10-25] =
|
| 40 |
|
| 41 |
* Fix: Fatal errors in Braintree gateway below PHP 7.0.
|
| 2 |
Contributors: JustinSainton
|
| 3 |
Donate link: https://wpecommerce.org
|
| 4 |
Tags: e-commerce, digital downloads, wp-e-commerce, shop, cart, paypal, authorize, stock control, ecommerce, shipping, tax
|
| 5 |
+
Requires at least: 4.7
|
| 6 |
+
Tested up to: 5.0
|
| 7 |
+
Stable tag: 3.14.0
|
| 8 |
|
| 9 |
WP eCommerce is a free, powerful plugin that empowers you to sell anything online, quickly and easily.
|
| 10 |
|
| 36 |
|
| 37 |
== Changelog ==
|
| 38 |
|
| 39 |
+
= 3.14.0 [2019-01-24] =
|
| 40 |
+
|
| 41 |
+
* Fix: Improve integration with new WordPress block editor.
|
| 42 |
+
* Fix: Improve compatibility with PHP 7.2+
|
| 43 |
+
|
| 44 |
= 3.13.1 [2017-10-25] =
|
| 45 |
|
| 46 |
* Fix: Fatal errors in Braintree gateway below PHP 7.0.
|
wp-shopping-cart.php
CHANGED
|
@@ -3,7 +3,7 @@
|
|
| 3 |
* Plugin Name: WP eCommerce
|
| 4 |
* Plugin URI: http://wpecommerce.org/
|
| 5 |
* Description: A plugin that provides a WordPress Shopping Cart. See also: <a href="http://wpecommerce.org" target="_blank">WPeCommerce.org</a> | <a href="https://wordpress.org/support/plugin/wp-e-commerce/" target="_blank">Support Forum</a> | <a href="http://docs.wpecommerce.org/" target="_blank">Documentation</a>
|
| 6 |
-
* Version: 3.
|
| 7 |
* Author: WP eCommerce
|
| 8 |
* Author URI: http://wpecommerce.org/
|
| 9 |
* Text Domain: wp-e-commerce
|
| 3 |
* Plugin Name: WP eCommerce
|
| 4 |
* Plugin URI: http://wpecommerce.org/
|
| 5 |
* Description: A plugin that provides a WordPress Shopping Cart. See also: <a href="http://wpecommerce.org" target="_blank">WPeCommerce.org</a> | <a href="https://wordpress.org/support/plugin/wp-e-commerce/" target="_blank">Support Forum</a> | <a href="http://docs.wpecommerce.org/" target="_blank">Documentation</a>
|
| 6 |
+
* Version: 3.14.0
|
| 7 |
* Author: WP eCommerce
|
| 8 |
* Author URI: http://wpecommerce.org/
|
| 9 |
* Text Domain: wp-e-commerce
|
wpsc-admin/display-update.page.php
CHANGED
|
@@ -12,13 +12,13 @@ global $wpdb,$wp_version;
|
|
| 12 |
$show_update_page = 1;
|
| 13 |
|
| 14 |
// if there's nothing in the children variation cache, refresh it, just to make sure.
|
| 15 |
-
if ( 0 == count( get_option( 'wpsc-variation_children' ) ) ) {
|
| 16 |
delete_option( 'wpsc-variation_children' );
|
| 17 |
_get_term_hierarchy( 'wpsc-variation' );
|
| 18 |
}
|
| 19 |
|
| 20 |
// if there's nothing in the children variation cache, refresh it, just to make sure.
|
| 21 |
-
if ( 0 == count( get_option( 'wpsc_product_category_children' ) ) ) {
|
| 22 |
delete_option( 'wpsc_product_category_children' );
|
| 23 |
_get_term_hierarchy( 'wpsc_product_category_children' );
|
| 24 |
}
|
| 12 |
$show_update_page = 1;
|
| 13 |
|
| 14 |
// if there's nothing in the children variation cache, refresh it, just to make sure.
|
| 15 |
+
if ( 0 == count( get_option( 'wpsc-variation_children', array() ) ) ) {
|
| 16 |
delete_option( 'wpsc-variation_children' );
|
| 17 |
_get_term_hierarchy( 'wpsc-variation' );
|
| 18 |
}
|
| 19 |
|
| 20 |
// if there's nothing in the children variation cache, refresh it, just to make sure.
|
| 21 |
+
if ( 0 == count( get_option( 'wpsc_product_category_children', array() ) ) ) {
|
| 22 |
delete_option( 'wpsc_product_category_children' );
|
| 23 |
_get_term_hierarchy( 'wpsc_product_category_children' );
|
| 24 |
}
|
wpsc-admin/includes/display-items-functions.php
CHANGED
|
@@ -239,7 +239,7 @@ function wpsc_price_control_forms() {
|
|
| 239 |
</thead>
|
| 240 |
<tbody>
|
| 241 |
<?php
|
| 242 |
-
if ( count( $product_meta['table_rate_price']['quantity'] ) > 0 ) {
|
| 243 |
foreach ( (array) $product_meta['table_rate_price']['quantity'] as $key => $quantity ) {
|
| 244 |
if ( $quantity != '' ) {
|
| 245 |
$table_price = number_format( $product_meta['table_rate_price']['table_price'][ $key ], 2, '.', '' );
|
|
@@ -299,7 +299,7 @@ function wpsc_stock_control_forms() {
|
|
| 299 |
if ( ! isset( $product_meta['unpublish_when_none_left'] ) ) {
|
| 300 |
$product_meta['unpublish_when_none_left'] = '';
|
| 301 |
}
|
| 302 |
-
|
| 303 |
if ( ! isset( $product_meta['stock_limit_notify'] ) ) {
|
| 304 |
$product_meta['stock_limit_notify'] = '';
|
| 305 |
}
|
| 239 |
</thead>
|
| 240 |
<tbody>
|
| 241 |
<?php
|
| 242 |
+
if ( count( (array) $product_meta['table_rate_price']['quantity'] ) > 0 ) {
|
| 243 |
foreach ( (array) $product_meta['table_rate_price']['quantity'] as $key => $quantity ) {
|
| 244 |
if ( $quantity != '' ) {
|
| 245 |
$table_price = number_format( $product_meta['table_rate_price']['table_price'][ $key ], 2, '.', '' );
|
| 299 |
if ( ! isset( $product_meta['unpublish_when_none_left'] ) ) {
|
| 300 |
$product_meta['unpublish_when_none_left'] = '';
|
| 301 |
}
|
| 302 |
+
|
| 303 |
if ( ! isset( $product_meta['stock_limit_notify'] ) ) {
|
| 304 |
$product_meta['stock_limit_notify'] = '';
|
| 305 |
}
|
wpsc-core/wpsc-constants.php
CHANGED
|
@@ -55,15 +55,15 @@ function wpsc_core_constants() {
|
|
| 55 |
|
| 56 |
// Define Plugin version
|
| 57 |
if ( ! defined( 'WPSC_VERSION' ) ) {
|
| 58 |
-
define( 'WPSC_VERSION' , '3.
|
| 59 |
}
|
| 60 |
|
| 61 |
if ( ! defined( 'WPSC_MINOR_VERSION' ) ) {
|
| 62 |
-
define( 'WPSC_MINOR_VERSION' , '
|
| 63 |
}
|
| 64 |
|
| 65 |
if ( ! defined( 'WPSC_PRESENTABLE_VERSION' ) ) {
|
| 66 |
-
define( 'WPSC_PRESENTABLE_VERSION', '3.
|
| 67 |
}
|
| 68 |
|
| 69 |
// Define a salt to use when we hash, WPSC_SALT may be defined for us in our config file, so check first
|
| 55 |
|
| 56 |
// Define Plugin version
|
| 57 |
if ( ! defined( 'WPSC_VERSION' ) ) {
|
| 58 |
+
define( 'WPSC_VERSION' , '3.14.0' );
|
| 59 |
}
|
| 60 |
|
| 61 |
if ( ! defined( 'WPSC_MINOR_VERSION' ) ) {
|
| 62 |
+
define( 'WPSC_MINOR_VERSION' , '855a4af6' );
|
| 63 |
}
|
| 64 |
|
| 65 |
if ( ! defined( 'WPSC_PRESENTABLE_VERSION' ) ) {
|
| 66 |
+
define( 'WPSC_PRESENTABLE_VERSION', '3.14.0' );
|
| 67 |
}
|
| 68 |
|
| 69 |
// Define a salt to use when we hash, WPSC_SALT may be defined for us in our config file, so check first
|
wpsc-core/wpsc-functions.php
CHANGED
|
@@ -479,11 +479,12 @@ function wpsc_register_post_types() {
|
|
| 479 |
);
|
| 480 |
$args = array(
|
| 481 |
'capability_type' => 'post',
|
| 482 |
-
'supports' => array( 'title', 'editor', 'thumbnail' ),
|
| 483 |
'hierarchical' => true,
|
| 484 |
'exclude_from_search' => false,
|
| 485 |
'public' => true,
|
| 486 |
'show_ui' => true,
|
|
|
|
| 487 |
'show_in_nav_menus' => true,
|
| 488 |
'menu_icon' => version_compare( $GLOBALS['wp_version'], '3.8', '<' ) ? WPSC_CORE_IMAGES_URL . '/credit_cards.png' : 'dashicons-cart',
|
| 489 |
'labels' => $labels,
|
|
@@ -530,7 +531,6 @@ function wpsc_register_post_types() {
|
|
| 530 |
'hierarchical' => false,
|
| 531 |
'labels' => $labels,
|
| 532 |
'show_in_rest' => true,
|
| 533 |
-
'rest_controller_class' => 'WPSC_REST_Tags_Controller',
|
| 534 |
'rewrite' => array(
|
| 535 |
'slug' => '/' . sanitize_title_with_dashes( _x( 'tagged', 'slug, part of url', 'wp-e-commerce' ) ),
|
| 536 |
'with_front' => false )
|
|
@@ -556,7 +556,6 @@ function wpsc_register_post_types() {
|
|
| 556 |
'labels' => $labels,
|
| 557 |
'hierarchical' => true,
|
| 558 |
'show_in_rest' => true,
|
| 559 |
-
'rest_controller_class' => 'WPSC_REST_Categories_Controller',
|
| 560 |
'rewrite' => array(
|
| 561 |
'slug' => str_replace( basename( home_url() ), '', $wpsc_page_titles['products'] ),
|
| 562 |
'with_front' => false,
|
|
@@ -581,7 +580,6 @@ function wpsc_register_post_types() {
|
|
| 581 |
$args = array(
|
| 582 |
'hierarchical' => true,
|
| 583 |
'show_in_rest' => true,
|
| 584 |
-
'rest_controller_class' => 'WPSC_REST_Variations_Controller',
|
| 585 |
'query_var' => 'variations',
|
| 586 |
'rewrite' => false,
|
| 587 |
'public' => true,
|
| 479 |
);
|
| 480 |
$args = array(
|
| 481 |
'capability_type' => 'post',
|
| 482 |
+
'supports' => array( 'title', 'editor', 'thumbnail', 'block-editor', 'revisions' ),
|
| 483 |
'hierarchical' => true,
|
| 484 |
'exclude_from_search' => false,
|
| 485 |
'public' => true,
|
| 486 |
'show_ui' => true,
|
| 487 |
+
'show_in_rest' => true,
|
| 488 |
'show_in_nav_menus' => true,
|
| 489 |
'menu_icon' => version_compare( $GLOBALS['wp_version'], '3.8', '<' ) ? WPSC_CORE_IMAGES_URL . '/credit_cards.png' : 'dashicons-cart',
|
| 490 |
'labels' => $labels,
|
| 531 |
'hierarchical' => false,
|
| 532 |
'labels' => $labels,
|
| 533 |
'show_in_rest' => true,
|
|
|
|
| 534 |
'rewrite' => array(
|
| 535 |
'slug' => '/' . sanitize_title_with_dashes( _x( 'tagged', 'slug, part of url', 'wp-e-commerce' ) ),
|
| 536 |
'with_front' => false )
|
| 556 |
'labels' => $labels,
|
| 557 |
'hierarchical' => true,
|
| 558 |
'show_in_rest' => true,
|
|
|
|
| 559 |
'rewrite' => array(
|
| 560 |
'slug' => str_replace( basename( home_url() ), '', $wpsc_page_titles['products'] ),
|
| 561 |
'with_front' => false,
|
| 580 |
$args = array(
|
| 581 |
'hierarchical' => true,
|
| 582 |
'show_in_rest' => true,
|
|
|
|
| 583 |
'query_var' => 'variations',
|
| 584 |
'rewrite' => false,
|
| 585 |
'public' => true,
|
wpsc-includes/cart.class.php
CHANGED
|
@@ -431,7 +431,7 @@ class WPSC_Cart {
|
|
| 431 |
function get_shipping_option() {
|
| 432 |
global $wpsc_shipping_modules;
|
| 433 |
|
| 434 |
-
if ( ( count( $this->shipping_quotes ) < 1 ) &&
|
| 435 |
isset( $wpsc_shipping_modules[$this->selected_shipping_method] ) &&
|
| 436 |
is_callable( array( $wpsc_shipping_modules[$this->selected_shipping_method], 'getQuote' ) ) ) {
|
| 437 |
$this->shipping_quotes = $wpsc_shipping_modules[$this->selected_shipping_method]->getQuote();
|
|
@@ -441,7 +441,7 @@ class WPSC_Cart {
|
|
| 441 |
$this->selected_shipping_option = null;
|
| 442 |
}
|
| 443 |
|
| 444 |
-
if ( count( $this->shipping_quotes ) < 1 ) {
|
| 445 |
$this->selected_shipping_option = null;
|
| 446 |
}
|
| 447 |
|
| 431 |
function get_shipping_option() {
|
| 432 |
global $wpsc_shipping_modules;
|
| 433 |
|
| 434 |
+
if ( ( count( (array) $this->shipping_quotes ) < 1 ) &&
|
| 435 |
isset( $wpsc_shipping_modules[$this->selected_shipping_method] ) &&
|
| 436 |
is_callable( array( $wpsc_shipping_modules[$this->selected_shipping_method], 'getQuote' ) ) ) {
|
| 437 |
$this->shipping_quotes = $wpsc_shipping_modules[$this->selected_shipping_method]->getQuote();
|
| 441 |
$this->selected_shipping_option = null;
|
| 442 |
}
|
| 443 |
|
| 444 |
+
if ( count( (array) $this->shipping_quotes ) < 1 ) {
|
| 445 |
$this->selected_shipping_option = null;
|
| 446 |
}
|
| 447 |
|
wpsc-includes/processing.functions.php
CHANGED
|
@@ -126,7 +126,7 @@ function wpsc_decrement_claimed_stock( $purchase_log_id ) {
|
|
| 126 |
case 4:
|
| 127 |
case 5:
|
| 128 |
foreach ( (array) $all_claimed_stock as $claimed_stock ) {
|
| 129 |
-
|
| 130 |
$product = get_post( $claimed_stock->product_id );
|
| 131 |
$current_stock = get_post_meta( $product->ID, '_wpsc_stock', true );
|
| 132 |
$remaining_stock = $current_stock - $claimed_stock->stock_claimed;
|
|
@@ -134,7 +134,7 @@ function wpsc_decrement_claimed_stock( $purchase_log_id ) {
|
|
| 134 |
update_product_meta( $product->ID, 'stock', $remaining_stock );
|
| 135 |
|
| 136 |
$product_meta = get_product_meta( $product->ID, 'product_metadata', true );
|
| 137 |
-
|
| 138 |
$parent_id = wpsc_product_is_variation( $product->ID );
|
| 139 |
|
| 140 |
if( $parent_id ) {
|
|
@@ -144,19 +144,19 @@ function wpsc_decrement_claimed_stock( $purchase_log_id ) {
|
|
| 144 |
} else {
|
| 145 |
$notify_limit = $product_meta['stock_limit_notify'];
|
| 146 |
}
|
| 147 |
-
|
| 148 |
if ( $notify_limit != 0 && $remaining_stock <= apply_filters( 'wpec_stock_limit_notify', $notify_limit ) ) {
|
| 149 |
// Check if notification has been sent
|
| 150 |
$notify_sent = get_product_meta( $product->ID, 'stock_limit_notify_sent', true );
|
| 151 |
-
|
| 152 |
if( empty( $notify_sent ) ) {
|
| 153 |
$email_message = sprintf( __( 'The product "%s" has reached stock level "%s".', 'wp-e-commerce' ), $product->post_title, $remaining_stock );
|
| 154 |
-
|
| 155 |
wp_mail( get_option('purch_log_email'), sprintf(__('%s is low on stock', 'wp-e-commerce'), $product->post_title), $email_message );
|
| 156 |
-
update_product_meta( $product->ID, 'stock_limit_notify_sent', true );
|
| 157 |
}
|
| 158 |
}
|
| 159 |
-
|
| 160 |
if ( $remaining_stock < 1 ) {
|
| 161 |
$email_message = sprintf( __( 'The product "%s" is out of stock.', 'wp-e-commerce' ), $product->post_title );
|
| 162 |
|
|
@@ -244,6 +244,7 @@ function wpsc_convert_weight( $in_weight, $in_unit, $out_unit = 'pound', $raw =
|
|
| 244 |
// other unit names are used when doing imports from CSV
|
| 245 |
|
| 246 |
// convert $in_weight to grams, then convert that to whatever else.
|
|
|
|
| 247 |
|
| 248 |
switch( strtolower( $in_unit ) ) {
|
| 249 |
case "kilogram":
|
|
@@ -411,11 +412,11 @@ function wpsc_check_weight($state, $product) {
|
|
| 411 |
$shipping_modules = array();
|
| 412 |
$product_meta = get_product_meta( $product->ID, 'product_metadata',true );
|
| 413 |
if(! $product->post_parent && wpsc_product_has_children($product->ID)) return $state;
|
| 414 |
-
|
| 415 |
if ( get_option( 'do_not_use_shipping' ) ) {
|
| 416 |
return $state;
|
| 417 |
}
|
| 418 |
-
|
| 419 |
// only do anything if UPS is on and shipping is used
|
| 420 |
if( array_search( 'ups', $custom_shipping ) !== false )
|
| 421 |
$shipping_modules[] = 'UPS';
|
| 126 |
case 4:
|
| 127 |
case 5:
|
| 128 |
foreach ( (array) $all_claimed_stock as $claimed_stock ) {
|
| 129 |
+
|
| 130 |
$product = get_post( $claimed_stock->product_id );
|
| 131 |
$current_stock = get_post_meta( $product->ID, '_wpsc_stock', true );
|
| 132 |
$remaining_stock = $current_stock - $claimed_stock->stock_claimed;
|
| 134 |
update_product_meta( $product->ID, 'stock', $remaining_stock );
|
| 135 |
|
| 136 |
$product_meta = get_product_meta( $product->ID, 'product_metadata', true );
|
| 137 |
+
|
| 138 |
$parent_id = wpsc_product_is_variation( $product->ID );
|
| 139 |
|
| 140 |
if( $parent_id ) {
|
| 144 |
} else {
|
| 145 |
$notify_limit = $product_meta['stock_limit_notify'];
|
| 146 |
}
|
| 147 |
+
|
| 148 |
if ( $notify_limit != 0 && $remaining_stock <= apply_filters( 'wpec_stock_limit_notify', $notify_limit ) ) {
|
| 149 |
// Check if notification has been sent
|
| 150 |
$notify_sent = get_product_meta( $product->ID, 'stock_limit_notify_sent', true );
|
| 151 |
+
|
| 152 |
if( empty( $notify_sent ) ) {
|
| 153 |
$email_message = sprintf( __( 'The product "%s" has reached stock level "%s".', 'wp-e-commerce' ), $product->post_title, $remaining_stock );
|
| 154 |
+
|
| 155 |
wp_mail( get_option('purch_log_email'), sprintf(__('%s is low on stock', 'wp-e-commerce'), $product->post_title), $email_message );
|
| 156 |
+
update_product_meta( $product->ID, 'stock_limit_notify_sent', true );
|
| 157 |
}
|
| 158 |
}
|
| 159 |
+
|
| 160 |
if ( $remaining_stock < 1 ) {
|
| 161 |
$email_message = sprintf( __( 'The product "%s" is out of stock.', 'wp-e-commerce' ), $product->post_title );
|
| 162 |
|
| 244 |
// other unit names are used when doing imports from CSV
|
| 245 |
|
| 246 |
// convert $in_weight to grams, then convert that to whatever else.
|
| 247 |
+
$in_weight = floatval( $in_weight );
|
| 248 |
|
| 249 |
switch( strtolower( $in_unit ) ) {
|
| 250 |
case "kilogram":
|
| 412 |
$shipping_modules = array();
|
| 413 |
$product_meta = get_product_meta( $product->ID, 'product_metadata',true );
|
| 414 |
if(! $product->post_parent && wpsc_product_has_children($product->ID)) return $state;
|
| 415 |
+
|
| 416 |
if ( get_option( 'do_not_use_shipping' ) ) {
|
| 417 |
return $state;
|
| 418 |
}
|
| 419 |
+
|
| 420 |
// only do anything if UPS is on and shipping is used
|
| 421 |
if( array_search( 'ups', $custom_shipping ) !== false )
|
| 422 |
$shipping_modules[] = 'UPS';
|
wpsc-includes/product-template.php
CHANGED
|
@@ -170,9 +170,10 @@ function wpsc_calculate_price( $product_id, $variations = false, $special = true
|
|
| 170 |
} else {
|
| 171 |
$price = get_post_meta( $product_id, '_wpsc_price', true );
|
| 172 |
}
|
|
|
|
| 173 |
$price = apply_filters( 'wpsc_price', $price, $product_id );
|
| 174 |
|
| 175 |
-
return $price;
|
| 176 |
}
|
| 177 |
|
| 178 |
/**
|
| 170 |
} else {
|
| 171 |
$price = get_post_meta( $product_id, '_wpsc_price', true );
|
| 172 |
}
|
| 173 |
+
|
| 174 |
$price = apply_filters( 'wpsc_price', $price, $product_id );
|
| 175 |
|
| 176 |
+
return floatval( $price );
|
| 177 |
}
|
| 178 |
|
| 179 |
/**
|
wpsc-includes/rest-api/wpsc-rest-categories-controller.php
DELETED
|
@@ -1,7 +0,0 @@
|
|
| 1 |
-
<?php
|
| 2 |
-
class WPSC_REST_Categories_Controller extends WP_REST_Terms_Controller {
|
| 3 |
-
public function __construct() {
|
| 4 |
-
parent::__construct( 'wpsc_product_category' );
|
| 5 |
-
$this->namespace = 'wpsc/v1';
|
| 6 |
-
}
|
| 7 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
wpsc-includes/rest-api/wpsc-rest-products-controller.php
DELETED
|
@@ -1,9 +0,0 @@
|
|
| 1 |
-
<?php
|
| 2 |
-
|
| 3 |
-
class WPSC_REST_Products_Controller extends WP_REST_Posts_Controller {
|
| 4 |
-
|
| 5 |
-
public function __construct( $post_type = 'wpsc-product' ) {
|
| 6 |
-
parent::__construct( $post_type );
|
| 7 |
-
$this->namespace = 'wpsc/v1';
|
| 8 |
-
}
|
| 9 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
wpsc-includes/rest-api/wpsc-rest-tags-controller.php
DELETED
|
@@ -1,7 +0,0 @@
|
|
| 1 |
-
<?php
|
| 2 |
-
class WPSC_REST_Tags_Controller extends WP_REST_Terms_Controller {
|
| 3 |
-
public function __construct() {
|
| 4 |
-
parent::__construct( 'product_tag' );
|
| 5 |
-
$this->namespace = 'wpsc/v1';
|
| 6 |
-
}
|
| 7 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
wpsc-includes/wpsc-rest-api.class.php
CHANGED
|
@@ -17,19 +17,9 @@ class WPSC_REST_API {
|
|
| 17 |
);
|
| 18 |
|
| 19 |
public static function hooks() {
|
| 20 |
-
add_filter( 'wpsc_register_post_types_products_args', array( __CLASS__, 'register_post_type_rest_args' ) );
|
| 21 |
add_action( 'rest_api_init', array( __CLASS__, 'register_routes' ), 999 );
|
| 22 |
}
|
| 23 |
|
| 24 |
-
public static function register_post_type_rest_args( $args ) {
|
| 25 |
-
|
| 26 |
-
$args['show_in_rest'] = true;
|
| 27 |
-
$args['rest_base'] = 'products';
|
| 28 |
-
$args['rest_controller_class'] = 'WPSC_REST_Products_Controller';
|
| 29 |
-
|
| 30 |
-
return $args;
|
| 31 |
-
}
|
| 32 |
-
|
| 33 |
public static function register_routes() {
|
| 34 |
$dir = WPSC_FILE_PATH . '/wpsc-includes/rest-api/';
|
| 35 |
|
| 17 |
);
|
| 18 |
|
| 19 |
public static function hooks() {
|
|
|
|
| 20 |
add_action( 'rest_api_init', array( __CLASS__, 'register_routes' ), 999 );
|
| 21 |
}
|
| 22 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 23 |
public static function register_routes() {
|
| 24 |
$dir = WPSC_FILE_PATH . '/wpsc-includes/rest-api/';
|
| 25 |
|
