Your IP : 3.142.198.250
<?php
namespace Automattic\Kkart\Blocks;
use Automattic\Kkart\Blocks\Package;
/**
* Library class.
* Initializes blocks in WordPress.
*
* @internal
*/
class Library {
/**
* Initialize block library features.
*/
public static function init() {
add_action( 'init', array( __CLASS__, 'register_blocks' ) );
add_action( 'init', array( __CLASS__, 'define_tables' ) );
}
/**
* Register custom tables within $wpdb object.
*/
public static function define_tables() {
global $wpdb;
// List of tables without prefixes.
$tables = array(
'kkart_reserved_stock' => 'kkart_reserved_stock',
);
foreach ( $tables as $name => $table ) {
$wpdb->$name = $wpdb->prefix . $table;
$wpdb->tables[] = $table;
}
}
/**
* Register blocks, hooking up assets and render functions as needed.
*/
public static function register_blocks() {
global $wp_version;
$blocks = [
'AllReviews',
'FeaturedCategory',
'FeaturedProduct',
'HandpickedProducts',
'ProductBestSellers',
'ProductCategories',
'ProductCategory',
'ProductNew',
'ProductOnSale',
'ProductsByAttribute',
'ProductTopRated',
'ReviewsByProduct',
'ReviewsByCategory',
'ProductSearch',
'ProductTag',
];
// Note: as a part of refactoring dynamic block registration, this will be moved
// to block level config.
if ( version_compare( $wp_version, '5.3', '>=' ) ) {
$blocks[] = 'AllProducts';
$blocks[] = 'PriceFilter';
$blocks[] = 'AttributeFilter';
$blocks[] = 'ActiveFilters';
if ( Package::is_feature_plugin_build() ) {
$blocks[] = 'Checkout';
$blocks[] = 'Cart';
}
}
if ( Package::is_experimental_build() ) {
$blocks[] = 'SingleProduct';
}
foreach ( $blocks as $class ) {
$class = __NAMESPACE__ . '\\BlockTypes\\' . $class;
$instance = new $class();
$instance->register_block_type();
}
self::register_atomic_blocks();
}
/**
* Register atomic blocks on the PHP side.
*/
protected static function register_atomic_blocks() {
$atomic_blocks = [
'product-title',
'product-button',
'product-image',
'product-price',
'product-rating',
'product-sale-badge',
'product-summary',
'product-sku',
'product-category-list',
'product-tag-list',
'product-stock-indicator',
'product-add-to-cart',
];
foreach ( $atomic_blocks as $atomic_block ) {
$instance = new \Automattic\Kkart\Blocks\BlockTypes\AtomicBlock( $atomic_block );
$instance->register_block_type();
}
}
}