【问题标题】:How do I use wc() in woocommerce?如何在 woocommerce 中使用 wc()?
【发布时间】:2015-03-16 14:00:52
【问题描述】:

我正在努力在 woocommerce 中使用 wc() 函数。 The documentation 说它Returns the main instance of WC to prevent the need to use globals.

我找不到任何使用这个的例子,我想知道如何使用 wc() 来做一些基本的事情。我知道它返回主要的 woocommerce 实例;从中我可以提取我需要的所有数据;但我不知道正确使用的语法......可能是这样的吗?

$foo = WC();
$bar = $foo->cart;
echo $bar;

有人可以纠正这个吗。

我也试图了解这样做而不是全球化变量的好处。

【问题讨论】:

    标签: php wordpress oop woocommerce


    【解决方案1】:

    正如您链接中的文档所说的那样。 '防止需要使用全局变量'。一个例子是这样的......

    使用全局代码。

    global $woocommerce;
    $customer_country = $woocommerce->customer->get_country();
    

    代码不使用全局

    $customer_country = WC()->customer->get_country(); 
    // some servers may not like like this... best is to use variables like $foo = WC(); then use $foo->customer->get_country()...
    

    如何使用 WC() ? start here...

    why must I avoid global?

    【讨论】:

    • 哇,比我想象的要容易得多,谢谢,这一切都很有意义
    • 与原问题无关,但是为什么人们总是写成WC()而不是wc()。有什么原因吗?
    • @tfont 你是说wc 吗?在源代码中是小写的。
    • @Fahmi 现在你让我做了一些研究! 3.2.6 版有 WC(),但 3.4.0 版有 wc()。文档使用 wc 但他们的 URL 有 WC... 简而言之,似乎它们被用于可交换的问题。没关系,因为 PHP 不区分大小写。 docs.woocommerce.com/wc-apidocs/function-WC.html
    • 有趣 - 我不知道 php 不区分大小写。
    【解决方案2】:

    WC() 只是一个返回 woocommerce 类实例的函数。

    1) 确保包含对函数所在文件的引用(请参阅如何做到这一点here):

    include_once WP_PLUGIN_DIR .'/woocommerce/woocommerce.php';
    

    2) 一旦你有了它,你就可以添加一个指向当前 woocommerce 实例的局部变量:

    $myWC = WC();
    
    $myWC->cart->calculate_fees();
    

    【讨论】:

    • 除非您正在做一些非常专业的事情,否则您不太可能需要包含 woocommerce.php - 例如。自定义 ajax 实现
    猜你喜欢
    • 1970-01-01
    • 2019-12-28
    • 1970-01-01
    • 2019-11-17
    • 2017-07-03
    • 2015-09-10
    • 2023-03-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多