woocommerce/packages/js/extend-cart-checkout-block/$slug-blocks-integration.ph...

106 lines
2.4 KiB
Plaintext
Raw Normal View History

Add `@woocommerce/extend-cart-checkout-block` package (#32323) * initial commit * 1.1.0 * Add additional files * 1.2.0 * Add sass file and comment to webpack.config.js * 1.3.0 * Use pascal case for class name * 1.4.0 * Add package lock * Add gitignore * Add plugin header * 1.5.0 * Add actions to initialise class * 1.6.0 * Fix issue with __FILE__ and version constant * 1.7.0 * Add scripts to package.lock.json * 1.8.0 * Move scripts to src and remove package.json template * 1.9.0 * Add JS script in root of src folder * 1.10.0 * Add correct directory to JS script * 1.11.0 * Add correct path to sass loader webpack * 1.12.0 * 1.13.0 * Remove automattic colour import * 1.14.0 * update src of scripts * 1.15.0 * update example data * 1.16.0 * update example with filters * 1.17.0 * Add filter for cod payment method * 1.18.0 * Create README.md * Update package.json (https://github.com/woocommerce/blocks-template/pull/1) * Add new file to house the integration class and prevent a fatal error (https://github.com/woocommerce/blocks-template/pull/2) * 1.19.0 * Update integration to use correct hooks * 1.20.0 * Include blocks integration file * 1.21.0 * Remove package lock and update repo references * Remove gitignore and update README * Add project.json * Move package to extend-cart-checkout-block * Update pnpm lock for new package name * Add new package name to dependency extraction webpack plugin * Remove unnecessary config options from webpack.config.js.mustache * Include npmDevDependencies in defaultValues * Add changelog for dependency extraction plugin * Add composer.json for changeglog generation * Add postinstall script to package.json * Remove test script from package.json * Reset package version to 1.0.0 Co-authored-by: Darren Ethier <darren@roughsmootheng.in>
2022-05-25 11:44:31 +00:00
<?php
use Automattic\WooCommerce\Blocks\Integrations\IntegrationInterface;
define ( '{{slugPascalCase}}_VERSION', '0.1.0' );
/**
* Class for integrating with WooCommerce Blocks
*/
class {{slugPascalCase}}_Blocks_Integration implements IntegrationInterface {
/**
* The name of the integration.
*
* @return string
*/
public function get_name() {
return '{{slug}}';
}
/**
* When called invokes any initialization/setup for the integration.
*
*/
public function initialize() {
$script_path = '/build/index.js';
$style_path = '/build/style-index.css';
$script_url = plugins_url( $script_path, __FILE__ );
$style_url = plugins_url( $style_path, __FILE__ );
$script_asset_path = dirname( __FILE__ ) . '/build/index.asset.php';
$script_asset = file_exists( $script_asset_path )
? require $script_asset_path
: array(
'dependencies' => array(),
'version' => $this->get_file_version( $script_path ),
);
wp_enqueue_style(
'{{slug}}-blocks-integration',
$style_url,
[],
$this->get_file_version( $style_path )
);
wp_register_script(
'{{slug}}-blocks-integration',
$script_url,
$script_asset['dependencies'],
$script_asset['version'],
true
);
wp_set_script_translations(
'{{slug}}-blocks-integration',
'{{slug}}',
'{{slug}}',
dirname( __FILE__ ) . '/languages'
);
}
/**
* Returns an array of script handles to enqueue in the frontend context.
*
* @return string[]
*/
public function get_script_handles() {
return array( '{{slug}}-blocks-integration' );
}
/**
* Returns an array of script handles to enqueue in the editor context.
*
* @return string[]
*/
public function get_editor_script_handles() {
return array( '{{slug}}-blocks-integration' );
}
/**
* An array of key, value pairs of data made available to the block on the client side.
*
* @return array
*/
public function get_script_data() {
$data = array(
'{{slug}}-active' => true,
'example-data' => 'This is some example data from the server',
);
return $data;
}
/**
* Get the file modified time as a cache buster if we're in dev mode.
*
* @param string $file Local path to the file.
* @return string The cache buster value to use for the given file.
*/
protected function get_file_version( $file ) {
if ( defined( 'SCRIPT_DEBUG' ) && SCRIPT_DEBUG && file_exists( $file ) ) {
return filemtime( $file );
}
return {{slugPascalCase}}_VERSION;
}
}