在销售报告中显示自定义字段“利润” - Woocommerce

时间:2014-10-19 10:44:58

标签: wordpress report woocommerce

我一直在寻找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 );
	}

}

1 个答案:

答案 0 :(得分:1)

以下是将自定义变量添加到woo commerce products的方法:

$Profit = array_shift(woocommerce_get_product_terms($product->product_id, 'Profit', 'names'));