Clo*_*tha 15 php wordpress plugins woocommerce
我是wordpress/woocommerce的新手,刚刚开始玩创建自定义插件.
到目前为止,我已经通过api添加了我自定义的woocommerce设置.
我遇到了一个问题,我想在产品数据选项卡中的单个产品上添加自定义字段.
我设法使用以下代码显示它:
add_action( 'woocommerce_product_options_general_product_data', array( $this, 'cuzd_general_fields' ) );
add_action( 'woocommerce_process_product_meta', array( $this, 'cuzd_general_fields_save') );
Run Code Online (Sandbox Code Playgroud)
但是现在我需要检查产品类型是简单还是变化.我尝试了以下方法:
$product = new WC_Product( get_the_ID() );
if( $product->is_type( 'simple' ) ) {
//
}
Run Code Online (Sandbox Code Playgroud)
但是我收到一个错误:
Fatal error: Class 'WC_Product' not found in ....
Run Code Online (Sandbox Code Playgroud)
我有一种很好的感觉,我试图在调用之前启动Product类.我很可能有类插件的整个格式错误.任何具有良好教学/最佳实践的阅读材料将不胜感激.
否则,如果以上是一个简单的修复,请告诉我.
hel*_*ing 19
问题可能get_the_ID()是没有返回产品的ID.
$product_id = 10; // the ID of the product to check
$_product = wc_get_product( $product_id );
if( $_product->is_type( 'simple' ) ) {
// do stuff for simple products
} else {
// do stuff for everything else
}
Run Code Online (Sandbox Code Playgroud)
如果$product_id是变体的ID,那么返回的类型$_product将是variation.
此外,您可以检查global $product哪些WooCommerce设置.虽然这永远不会是变体ID,也不会是父变量产品的ID.
这是在不创建产品实例的情况下检查产品类型的一种方法:
$product_type = get_the_terms( $product_id,'product_type')[0]->slug;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
26548 次 |
| 最近记录: |