如何直接在includes / abstracts中编辑函数的字符串?

时间:2014-09-25 17:16:22

标签: php wordpress woocommerce

例如文件get_price_html_from_to()

中的函数plugins/woocommerce/includes/abstracts/abstract-wc-product.php
public function get_price_html_from_to( $from, $to ) {
    return '<del>' . ( ( is_numeric( $from ) ) ? wc_price( $from ) : $from ) . '</del> <ins>' . ( ( is_numeric( $to ) ) ? wc_price( $to ) : $to ) . '</ins>';
}

如果不进入文件本身并更改它,我该如何更改该字符串?

是否可以创建我自己的abstract-wc-product.php文件,并在文件而不是原始文件中指向wordpress / woo?还是有办法简单地删除&amp;用我自己的功能替换功能?或者只是在它被使用之前改变它的字符串?

2 个答案:

答案 0 :(得分:3)

我认为您可以开展此工作的一种方法是在包含get_price_html_from_to( $from, $to )文件之前声明函数abstract-wc-product.php

然后进入abstract-wc-product.php文件并在函数的get_price_html_from_to( $from, $to )定义附近添加此代码:

if ( ! function_exists( 'get_price_html_from_to' ) )
    public function get_price_html_from_to( $from, $to ) {
    return '<del>' . ( ( is_numeric( $from ) ) ? wc_price( $from ) : $from ) . '</del> <ins>' . ( (       is_numeric( $to ) ) ? wc_price( $to ) : $to ) . '</ins>';
}

}

虽然这需要你进入文件并实际更改它..但实际上稍微

答案 1 :(得分:1)

不要更改模板,因为一旦有更新,您将丢失更改。而是将您的方法添加到过滤器:

    dd_filter( 'woocommerce_get_price_html', 'your_function_name', 100, 2 );
    function your_function_name( $price, $product ){
         return 'Was:' . str_replace( '<ins>', ' Now:<ins>', $price );
    }