在WordPress函数中使用PHP类

时间:2020-11-19 作者:bghouse

我想在函数中使用一个类。php,但我不确定设置它的最佳方式

我还想获得WooCommerce的购物车阵列。我目前还没有访问类中WC()的权限。

在函数中实现OOP的最佳途径是什么。php和将WooCommerce的类WC()引入我的类以便我可以用于其他函数的最佳方法是什么。

my code in functions.php

class MyCart {
    public $cart_contents;

    public function __construct(){
        add_action( \'get_header\', [ $this, \'set_users_cart_contents\' ] );
        //$this->set_users_cart_contents();
    }

    public function set_users_cart_contents() {
        $this->cart_contents = WC()->cart->get_cart_contents(); // what i want to use
        //$this->cart_contents = [\'test\' => \'123\']; // dummy array for testing
    }

    public function get_users_cart_contents() {
        return $this->cart_contents;
    }
} // class

$cartClass = new MyCart();

// add action
function emdr_add_to_cart(){
    // I want to use my class here
    // $items = $cartClass->get_users_cart_contents();
}
add_action( \'woocommerce_add_to_cart\', \'emdr_add_to_cart\');

// add action
function cart_page_logic(){
    if(is_cart()){
        // I want to use my class here
        // $items = $cartClass->get_users_cart_contents();
    }
}
add_action( \'get_header\', \'cart_page_logic\' );

1 个回复
SO网友:Ethan

如果已定义类MyCart 直接进入functions.php 用你的钩子。我希望以下方面能够发挥作用:

// add action
$cart = new MyCart();
function emdr_add_to_cart(){
    $items = $cartClass->get_users_cart_contents();
    // process items
}
add_action( \'woocommerce_add_to_cart\', \'emdr_add_to_cart\');
我还可以补充一点,复制;“状态”;在两个地方的用户购物车中,可能有一个代码气味。我建议直接使用WooCommerce购物车中的值。

相关推荐

如何检查页面模板是否在函数中。php

所以我有一个网站,有多个联系人表单7。一个功能由wpcf7_before_send_mail 钩此函数只能用于一个表单。指定的表单只在一个页面模板中使用,所以我提出了简单的解决方案-使用is_page_template 功能,但不起作用。那么,如何检查是否使用了页面模板。代码放在函数中。php。页面模板位于页面模板文件夹中。这是我的密码add_action( \'wpcf7_before_send_mail\', \'wpcf7_add_text_to_mail_body\' ); fu