yoone-wc-product-bundles/assets/js/blocks/bundle-selector.js

52 lines
2.8 KiB
JavaScript
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/*
* Gutenberg Block: Yoone Bundle Selector
* 在产品页插入混装产品选择与加购表单。
*/
(function(wp){
const { registerBlockType } = wp.blocks;
const { __ } = wp.i18n;
const { InspectorControls } = wp.blockEditor || wp.editor;
const { PanelBody, ToggleControl, TextControl } = wp.components;
registerBlockType('yoone/bundle-selector', {
title: __('Yoone Bundle Selector', 'yoone-product-bundles'),
icon: 'cart',
category: 'widgets',
attributes: {
useCurrentProduct: { type: 'boolean', default: true },
productId: { type: 'number', default: 0 },
},
description: __('在产品页显示“混装产品列表与加购”表单可选择当前产品或指定产品ID。', 'yoone-product-bundles'),
edit: (props) => {
const { attributes, setAttributes } = props;
const { useCurrentProduct, productId } = attributes;
return (
wp.element.createElement('div', { className: 'yoone-pb-block-editor' },
wp.element.createElement(InspectorControls, null,
wp.element.createElement(PanelBody, { title: __('设置', 'yoone-product-bundles'), initialOpen: true },
wp.element.createElement(ToggleControl, {
label: __('使用当前产品页面', 'yoone-product-bundles'),
checked: !!useCurrentProduct,
onChange: (val) => setAttributes({ useCurrentProduct: !!val })
}),
!useCurrentProduct && wp.element.createElement(TextControl, {
label: __('指定产品IDMix and Match 类型)', 'yoone-product-bundles'),
type: 'number',
value: productId || 0,
onChange: (val) => setAttributes({ productId: parseInt(val || '0', 10) || 0 })
})
)
),
wp.element.createElement('div', { className: 'yoone-pb-block-preview' },
wp.element.createElement('p', null, __('Yoone Bundle Selector编辑器预览', 'yoone-product-bundles')),
wp.element.createElement('p', null, useCurrentProduct
? __('将渲染当前产品的混装选择表单(需为 Mix and Match 类型)。', 'yoone-product-bundles')
: __('将渲染指定产品ID的混装选择表单。', 'yoone-product-bundles')
)
)
)
);
},
save: () => null, // 由后端动态渲染
});
})(window.wp);