覆盖jigoshop中的公共功能

时间:2015-08-25 12:52:02

标签: php wordpress 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(),但没有运气。

是否可以修改现有的公共功能?

1 个答案:

答案 0 :(得分:1)

为了添加你的新函数,我假设你有一个包含你的函数的主类,所以,添加一个扩展它的新类,

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

在这种情况下,您必须从您编写的新类中实例化。