wooletthedevsout/product-admin

WLTDO模块用于产品管理和编辑实现。

v1.0.0 2021-11-15 20:57 UTC

This package is auto-updated.

Last update: 2024-09-22 12:20:00 UTC


README

本模块可以作为独立模块或库使用,也可以作为WLTDO框架的一部分,旨在自动化并简化自定义WC产品编辑页面的过程。

最初,类将负责在编辑页面内添加新标签页和产品元数据面板时的一切。此外,我们正在开发用于管理和修改现有标签页和字段的类。

安装

使用此包的最简单方法是使用Composer进行要求。

用法

在插件的主文件中,使用类并通过Composer自动加载它们。

use Wooletthedevsout\Product\Admin\{Tabs, Panels};
require __DIR__ . '/vendor/autoload.php';

$tabs = new Tabs('New Tab', $fields);

Tab类需要两个参数:第一个是新标签页的名称(不是slug),第二个是要添加的字段数组。该数组可以包含任意数量的字段,每个字段都是一个新数组。

// Once the tab is created, we need to inject the panels dependency, using the method getPanel()

$tabs->getPanel();

// Also, a title can be added if you want so

$tabs->addTitle('The title');

那么,字段是什么呢?

Ohh... 当然。如图所示,字段首先作为数组传递给Tabs实例。目前,我们通过WooCommerce原生支持覆盖所有字段类型:文本、数字、文本区域、复选框、选择、单选(需要CSS修复,因为WC原生功能在产品编辑区域有缺陷)。

因此,我们需要一个数组的数组。每个元素都是一个字段,对于这些中的每一个,第一个元素将是字段类型

*** [{{字段类型}}, {{SLUG}}, {{标签}}, {{描述}}] ***

对于选择类型,一个额外的元素(另一个数组)将包括要添加的选项。对于单选字段也是如此,尽管对于后者,我们只是剪切了描述,因为它在后台生成了很多错误。因此,对于选择字段和单选字段,分别,我们需要注册如下

*** [{{字段类型}}, {{SLUG}}, {{标签}}, {{描述}}, {{选项数组}}] *** *** [{{字段类型}}, {{SLUG}}, {{标签}}, {{选项数组}}] ***

因此,假设我们想添加两个文本字段、一个复选框、一个选择字段和一个单选字段,考虑到之前的代码。要传递的数组看起来像这样

$forms = [
	[
		'text',
		'user_message', 
		'Cool Label', 
		'Description for the tooltip with question mark.'
	],
	[
		'text', 
		'capacity', 
		'Another Label', 
		'Description for the tooltip with question mark.'
	],
	[
		'checkbox', 
		'confirm', 
		'Confirmation', 
		'Description for the tooltip with question mark.'
	],
	[
		'select', 
		'choices', 
		'Select Title', 
		'Description for the tooltip with question mark.',
		[
			'Choice 1',
			'Choice 2',
			'Choice 3'
		]
	],
	[
		'radio', 
		'choices', 
		'Select Title',
		[
			'Choice 1',
			'Choice 2'
		]
	];

常见问题解答

嗯,这是Woo Let The Devs Out框架的新库和模块之一。我想你们有很多问题。让我们尝试回答一些。

我需要使用钩子或进一步实现来保存这些新字段的元数据吗?

不,Panels类已经配备了完成这一任务的方法。

字段验证怎么样?

坦白说?我们正在努力... 我们对WC原生验证并不满意,所以我们应该最终想出一些更复杂的方法。

我们可以期待新的字段类型(特别是那些不受WC原生API覆盖的类型,如日期时间、图片等)吗?

当然可以,WLTDO框架的目的是提供一种简单且面向对象的方式扩展WooCommerce。虽然一些WC的实现和扩展非常发达,比如支付网关,当开发复杂集成和整个包时,它们要求我们非常重复。