【问题标题】:How to access a global variable in the WordPress "system" from a custom service?如何从自定义服务访问 WordPress“系统”中的全局​​变量?
【发布时间】:2016-10-30 03:26:08
【问题描述】:

嗨,

对 WordPress 来说非常新 - 如果没有多大意义,非常抱歉 :-)

更具体地说,这是关于 WooCommerce 插件的。

对于我涉足的所有文件 - 我正在帮助朋友顺便说一句 - 为他创建一些漂亮的短代码,我已经能够访问全球 $woocommerce。

这个全局变量有一些简洁的方法,我能够找到它的 API - 所以一切都很好。

现在,由于各种原因,我需要创建一个小型定制服务,只为客户更改送货国家/地区。

我以前可以通过这样做来做到这一点 - 如果我想快速将其设置为孟加拉国(我认为是)

<?php
    global $woocommerce;
    $woocommerce->customer->set_shipping_country("BD");
?>

现在,很自然,在我的 set-customer-country.php 服务文件中,我不能只跳华尔兹并利用这个包含所有购物车内容等的全局类。

所以 - 我的问题是,我如何访问它,我是否能够发送某种会话 ID,如果我通过正确的功能很好地询问,我可以要求系统给我一些东西作为回报并提供有效的会话 ID?

提前谢谢你,至少知道我会得到一些帮助:-)

【问题讨论】:

  • 全局 $woocommerce 已被弃用,取而代之的是函数 WC(),它返回 WooCommerce 类的单个实例。
  • 谢谢 helgatheviking,很高兴知道 :-)

标签: ajax session woocommerce shipping


【解决方案1】:

似乎 WordPress 有一个不错的 AJAX 挂钩系统。

所以我必须创建我的函数,将其注册到所述系统,然后在我的 javascript 中,我可以通过 url "/wp-admin/admin-ajax.php" 访问此调用的 URL

    function cool_foo_func () {

        $response = array(
            "foo" => "func"
        );

        wp_send_json($response);
    }
    add_action('wp_ajax_foo_func', 'cool_foo_func');
    add_action('wp_ajax_nopriv_foo_func', 'cool_foo_func');

然后进行 ajax 调用,只记得使用参数 action="foo_func" 进行调用(或扩展对象或其他方式或您如何做)

所以现在我可以在编写简码的地方编写服务,我的问题就解决了:-)

【讨论】:

  • 是的,在代码中也这样做了 - 发布修复时出错。感谢您指出这一点,将编辑
猜你喜欢
  • 2016-08-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-09-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多