我一直在寻找2天如何做到这一点,真的很挣扎。我对PHP很新,所以这可能非常简单,但无论我尝试它只是不起作用。
我在每个产品中都有一个名为'Profit'的自定义字段。我想要做的就是在woocommerce销售报告电子邮件插件中调用产品名称旁边的内容。 !
以下是我需要编辑的class-wc-sre-row-top-sellers.php文件中的代码。 但它不起作用,我哪里错了?
更新:我现在已经添加了仍然没有运气的建议。您可以看到我添加的行'//由Oli设置利润并添加了
。 ' - £)。 $ Profit
在$ value =底部的末尾。
UPDATE2:我现在已经添加了代码,因为我在下面被告知,但它仍然无效。正在调用利润,但之后没有显示任何内容。我输入自定义字段的方式是在“自定义字段”选项卡下的产品
我做错了什么?
<?php
if ( !defined( 'ABSPATH' ) ) {
exit;
} // Exit if accessed directly
class WC_SRE_Row_Top_Sellers extends WC_SRE_Report_Row {
/**
* The constructor
*
* @param $date_range
*
* @access public
* @since 1.0.0
*/
public function __construct( $date_range ) {
parent::__construct( $date_range, 'top-sellers', __( 'Top Sellers', 'woocommerce-sales-report-email' ) );
}
/**
* Prepare the data
*
* @access public
* @since 1.0.0
*/
public function prepare() {
// Create a Report Manager object
$report_manager = new WC_SRE_Report_Manager( $this->get_date_range() );
// Set the default order types
$order_types = array( 'shop_order' );
// wc_get_order_types() is a 2.2+ function
if ( function_exists( 'wc_get_order_types' ) ) {
$order_types = wc_get_order_types( 'order-count' );
}
// Get top sellers
$top_sellers = $report_manager->get_order_report_data( array(
'data' => array(
'_product_id' => array(
'type' => 'order_item_meta',
'order_item_type' => 'line_item',
'function' => '',
'name' => 'product_id'
),
'_qty' => array(
'type' => 'order_item_meta',
'order_item_type' => 'line_item',
'function' => 'SUM',
'name' => 'order_item_qty'
)
),
'order_by' => 'order_item_qty DESC',
'group_by' => 'product_id',
'limit' => 12,
'query_type' => 'get_results',
'filter_range' => true,
'order_types' => $order_types,
) );
$value = 'n/a';
// Fill the $value var with products
if ( count( $top_sellers ) > 0 ) {
$value = '';
foreach ( $top_sellers as $product ) {
// THIS IS WHERE THE NEW CODE IS AND $PROFIT IS CALLED AFTER ' - £' . BELOW
$Profit = array_shift(woocommerce_get_product_terms($product->product_id, 'Profit', 'names'));
$value .= $product->order_item_qty . 'x : ' . get_the_title( $product->product_id ) . ' - £' . $Profit . '<br/>';
}
}
$this->set_value( $value );
}
}
答案 0 :(得分:1)
以下是将自定义变量添加到woo commerce products的方法:
$Profit = array_shift(woocommerce_get_product_terms($product->product_id, 'Profit', 'names'));