覆盖插件类和函数

时间:2020-03-04 作者:Down

希望有人能帮助我。我买了一个插件。但是我需要在我的子模板函数中更改插件的函数。phhere是插件的类和函数。我需要用我的值更改函数“get\\u product\\u price”。

class TOP_Woo {
  public function __construct() {
    ..
    ..
    $this->init_hook();
  }

  public function init_hook() {
    add_filter( \'woocommerce_product_class\', array( $this, \'my_product_class\' ), 10, 4 );
  }

  public function my_product_class( $classname, $product_type, $post_type, $product_id) {
    $classname = \'SUB_WC_Product\';
    return $classname;
  }

  public function load() {
    TOP_Woo::instance();
  }

  public static function instance() {
    if ( ! self::$_instance ) {
      self::$_instance = new self();
    }
    return self::$_instance;
  }
}
add_action( \'plugins_loaded\', array( \'TOP_Woo\', \'load\' ) );


global $woocommerce;
class SUB_WC_Product extends WC_Product_Simple {
  public function __construct ( $product = 0 ) {
    $this->post = get_post( $this->id );
  }

  public function get_product_price( $context = \'view\' ) {
    return "XY";
  }
}
谢谢!:)

1 个回复
SO网友:Down

谢谢我不知道这是不是个好方法,但这段代码在子主题中起作用。php为我工作:

add_filter(\'woocommerce_product_class\', \'myFunction\', 10, 4);
function myFunction($classname, $product_type, $post_type, $product_id) {
    $classname = \'SUB_WC_Product_my\';
    return $classname;
}

class SUB_WC_Product_my extends SUB_WC_Product {
    public function get_product_price( $context = \'view\' ) {
        return "AB";
    }
}