Php WooCommerce';产品类型选择器&x27;显示自定义类型但另存为简单产品的筛选器
我试图通过使用Php WooCommerce';产品类型选择器&x27;显示自定义类型但另存为简单产品的筛选器,php,wordpress,woocommerce,Php,Wordpress,Woocommerce,我试图通过使用product\u type\u选择器过滤器通过插件添加自定义产品类型,虽然我的产品显示在select上,但每当我保存选择我的产品类型的产品时,如果我在single product.php模板上执行var\u dump($product->product\u type)操作,它就会显示“简单”产品 我不知道我做错了什么。任何帮助都将不胜感激。这是我的密码 <?php /** * Plugin Name: MY CuSTOM PRODUCT TYPE * @since
product\u type\u选择器
过滤器通过插件添加自定义产品类型,虽然我的产品显示在select上,但每当我保存选择我的产品类型的产品时,如果我在single product.php
模板上执行var\u dump($product->product\u type)
操作,它就会显示“简单”产品
我不知道我做错了什么。任何帮助都将不胜感激。这是我的密码
<?php
/**
* Plugin Name: MY CuSTOM PRODUCT TYPE
* @since 1.0
*/
/**
* Required functions
*/
function product_code_loader() {
class WC_Product_Custom_Product_Type extends WC_Product {
public function __construct( $product ) {
$this->product_type = 'my_custom_product_type';
parent::__construct( $product );
add_filter( 'product_type_selector', array( $this, 'add_my_custom_product_type_to_select' ) );
}
function add_my_custom_product_type_to_select( $product_types ) {
$product_types['my_custom_product_type'] = __( 'My Custom Product Type', 'my_custom_product_type' );
return $product_types;
}
}
new WC_Product_Custom_Product_Type(null);
}
add_action('plugins_loaded', 'product_code_loader');
添加新产品类型时,需要扩展WC\U类产品
class WC_Product_New_Product_type extends WC_Product{
}
你可以通过阅读来了解它是如何工作的。此示例将向您展示如何在选择新产品类型时将新产品类型添加到“选择、隐藏”面板
下面是我如何通过扩展WC_产品类实现的
class WC_Product_Online_Service_Product extends WC_Product {
public function __construct( $product ) {
$this->product_type = 'online_service_product';
parent::__construct( $product );
// actions & filters follow
}
new WC_Product_Online_Service_Product(null); // parameter null but not empty.
正如您所看到的,_construct()有一个参数,我不使用静态函数(真的不知道是否可以)。尝试将其添加到init()有趣的是,对我来说,问题似乎是使用破折号或下划线。
我现在也遇到了同样的问题,结果发现:“custom\u product”不起作用,但“custom”可以保存。您是否尝试过调整classname+product\u类型字符串?我已经解决了我的问题,使之兼容
例如:WC\u-Product\u-Custom\u-Product\u-Type
应收到Custom\u-Product\u-Type
而不是my\u-Custom\u-Product\u-Type
,或者在您的示例中,将其修改为WC\u-Product\u-my\u-Custom\u-Product\u-Type
,任何代码都将不胜感激@Benoti我已经用示例代码更新了我的问题。我试着用插件加载的动作连接我的类,并用WC\u产品扩展类,但没有任何效果。为什么不使用:新的自定义产品类型::init()而不是代码事件管理器?@Benoti是的,我的意思是。但它没有效果。就像我说的,我已经试过了,但也没有用。我很抱歉,我已经试过了你说的所有内容,但我不知道我做错了什么。WooCommerce不同意这是一种定制产品类型,它只是将其显示为一种简单的产品类型。我已经用我的简单插件的完整源代码更新了我的问题。你的问题是你想运行一个函数中的类!您的类无法访问。