我有一个Wooccommerce Invoicing插件,它本身有一个名为";产品概要";。默认情况下,这个字段在Wooccommerce中不存在,也没有映射,但是它有以下代码,允许挂钩并定义产品摘要应该是什么
/**
* @param null|string $summary
* @return $this
*/
public function setSummary($summary = null)
{
$summary = apply_filters('moloni_before_order_item_setSummary', $summary, $this->product);
if ($summary) {
$this->summary = $summary;
} else {
$this->summary .= $this->getSummaryVariationAttributes();
if (!empty($this->summary)) {
$this->summary .= "n";
}
$this->summary .= $this->getSummaryExtraProductOptions();
}
$this->summary = apply_filters('moloni_after_order_item_setSummary', $summary, $this->product);
return $this;
}
从这里开始,我试图将"产品简短描述"字段定义为"摘要",但我不确定正确的方法是什么,但到目前为止,我已经想到了这个(我无法开始工作(:
/** Moloni Product Summary hook and get product shot description */
add_filter( 'moloni_before_order_item_setSummary', 'summary_is_exerpt', 10, 1 );
function summary_is_exerpt ( $summary , $product ) {
global $product;
// Get the product object for this ID:
$product->get_id();
// Get product short description
$summary = $product->get_short_description();
return $summary;
}
我总是会遇到这样的错误:PHP致命错误:未捕获错误:调用中null的成员函数get_id((
我假设$product没有定义。我尝试设置全局变量,如:全球$product;全球$wooccommerce,$post;
然而,如果没有成功,错误仍然存在。
这种方法有意义吗?有人能给我照一些正确的光吗?提前感谢您的关注和建议。
是否尝试将$accepted_args
更新为2
?和或以后的priority
?
<?php
// use later pri and update to 2 accepted args
add_filter( 'moloni_before_order_item_setSummary', 'summary_is_exerpt', 20, 2 );
// remove setting global product
function summary_is_exerpt ( $summary , $product ) {
// Get the product object for this ID
$product->get_id();
// Get product short description
$summary = 'TESTE RESUMO';
return $summary;
}