Переопределение публичных функций в jigoshop

Мне нужно переопределить публичную функцию, которая возвращает процент скидки в jigoshop

/**
* Returns the products sale value, either with or without a percentage
*
* @return string HTML price of product (with sales)
*/
public function get_calculated_sale_price_html()
{
if ($this->is_on_sale()) {
if (strstr($this->sale_price, '%')) {
return '<del>'.jigoshop_price($this->regular_price).'</del>
<ins>'.jigoshop_price($this->get_price()).'</ins><br/>
<span class="discount">'.sprintf(__('%s off!', 'jigoshop'), $this->sale_price).'</span>';
} else {
return '<del>'.jigoshop_price($this->regular_price).'</del>
<ins>'.jigoshop_price($this->sale_price).'</ins>';
}
}

return '';
}

Я пробовал с

if (!function_exists('calculated_price')) {
function calculated_price(){
if ($this->is_on_sale()) {
if (strstr($this->sale_price, '%')) {
return '<del>'.jigoshop_price($this->regular_price).'</del>
<ins>'.jigoshop_price($this->get_price()).'</ins><br/>
<span class="discount">'.$this->sale_price.'</span>';
} else {
return '<del>'.jigoshop_price($this->regular_price).'</del>
<ins>'.jigoshop_price($this->sale_price).'</ins>';
}
}

return '';
}
}

add_action('get_calculated_sale_price_html', 'calculated_price');

И я попробовал с add_filter() но не повезло.

Можно ли изменить существующую публичную функцию?

0

Решение

Для добавления вашей новой функции, я предполагаю, что у вас есть главный класс, который содержит вашу функцию, поэтому добавьте новый класс, который расширяет это,

class myclass extends already_externs_class {
function calculated_price(){
}
}

В этом случае вам нужно создать экземпляр из нового класса, который вы написали.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]