84a74b5edb | ||
---|---|---|
.. | ||
.wordpress-org | ||
api | ||
assets | ||
bin | ||
changelog | ||
images | ||
includes | ||
src | ||
.distignore | ||
.editorconfig | ||
.eslintignore | ||
.eslintrc | ||
.gitignore | ||
.travis.yml | ||
NEXT_CHANGELOG.md | ||
README.md | ||
composer.json | ||
composer.lock | ||
package.json | ||
plugin.php | ||
readme.txt | ||
webpack.config.js | ||
woocommerce-beta-tester.php |
README.md
WooCommerce Beta Tester
A plugin that makes it easy to test out pre-releases such as betas release canadidates and even final releases.
Usage
You can get to the settings and features from your top admin bar under the name WC Beta Tester.
WooCommerce Admin Test Helper
A plugin that makes it easier to test the WooCommerce Admin plugin.
Development
To get started, run the following commands:
npm install
npm start
See wp-scripts for more usage information.
Extending
There are two client-side filters available if you want to extend the test helper with your own plugin's test setup code.
This example adds a new tab:
import { addFilter } from '@wordpress/hooks';
const SuperSekret = () => (
<>
<h2>Super sekret</h2>
<p>This section contains super sekret tools.</p>
<NewTool/>
</>
);
addFilter(
'woocommerce_admin_test_helper_tabs',
'wath',
( tabs ) => [
...tabs,
{
name: 'super-sekret',
title: 'Super sekret',
content: <SuperSekret/>,
}
]
);
This example adds a new tool to the existing Options tab:
import { addFilter } from '@wordpress/hooks';
const NewTool = () => (
<>
<strong>New tool</strong>
<p>Description</p>
<button>Execute</button>
</>
);
addFilter(
'woocommerce_admin_test_helper_tab_options',
'wath',
( entries ) => [
...entries,
<NewTool/>
]
);
Register a REST API endpoint to perform server-side actions in the usual way:
add_action( 'rest_api_init', function() {
register_rest_route(
'your-plugin/v1',
'/area/action',
array(
'methods' => 'POST',
'callback' => 'your_plugin_area_action',
'permission_callback' => function( $request ) {
if ( ! wc_rest_check_manager_permissions( 'settings', 'edit ) ) {
return new \WP_Error(
'woocommerce_rest_cannot_edit',
__( 'Sorry, you cannot perform this action', 'your-plugin' )
);
}
return true;
}
)
);
} );
function your_plugin_area_action() {
return [];
}
This would be used on the client like this:
import apiFetch from '@wordpress/api-fetch';
...
const response = await apiFetch( {
path: '/your-plugin/v1/area/action',
method: 'POST',
} );
Deploying
Prerequisites:
- Hub
- Write access to this repository
You can create a test ZIP of the plugin using this command:
npm run build
This creates woocommerce-admin-test-helper.zip
in the project root.
We release the plugin using GitHub Releases. There is a script to automate this:
- Make sure the version is updated in
woocommerce-admin-test-helper.php
andpackage.json
- Commit and push to
trunk
- Run
npm run release
- Make sure you provide the correct version number when prompted
- That's it!