3

再会,

我对 WordPress 和 WooCommerce 还很陌生。但我相当精通 PHP 和 MySQL。所以我的问题是,我该如何对 WooCommerce 进行特定查询,以便将其指向特定的元数据。例如,如果我想进行查询以调用 WooCommerce 中的所有不同类别> 我通常会这样称呼它;

$args = array(
            'number' => 'null',
            'orderby' => 'name',
            'order' => 'ASC',
            'columns' => '4',
            'hide_empty' => '1',
            'parent' => '',
            'ids' => ''
)

好的,这将是我的查询,现在我正在苦苦挣扎的是我现在该怎么处理它?因为那部分是每个人都展示的,没有人告诉你或向你展示如何实际使用查询或从哪里开始。我使用了基本的 WP 查询功能,但我收到的唯一类别来自 WP 和 WC。那么我如何将它直接指向WC呢?此外,这些钩子让我很恼火。那么我该如何以正常方式进行,绕过 WC 和 WP 函数并构建我自己的查询;

 $query = "SELECT * FROM wc_categories";
 $result = mysql_query($query);
 $temp_array = mysqli_fetch_array($result);

这就是我想做的事情,因为没有人解释钩子以及如何使用它,或者编辑它,每个人都认为你是WP 家族的专家。

因此,如果有人能指出我正确的方向,我将不胜感激。如果你能向我解释如何处理我的第二个代码块,我会很长时间地爱你,因为这是我的首选方式。

亲切的问候,丹麦

4

1 回答 1

3

使用标准 wp/wc 函数创建查询很容易。例如,如果您想获取特定订单的客户详细信息。所需的代码可能如下所示(注意全局函数):

global $post, $woocommerce, $the_order;
if ( empty( $the_order ) || $the_order->id != $post->ID )
    $the_order = new WC_Order( $post->ID );

$user_info = get_userdata( $the_order->user_id );
$biling_email = $the_order->billing_email;
$phone_no = $the_order->billing_phone;

如果要查询自定义订单元字段,可以使用如下代码。您需要知道数据库中的自定义字段名称:

$custom_field = get_post_meta( $post->ID, 'custom_field', true );

对于自定义查询,您需要首先通过在查询之前添加全局 $wpdb 函数来初始化全局 wpdb 函数。即使这仅适用于 WP 页面,也不适用于在 WP 之外创建的页面。下面是一个例子:

global $wpdb

$table = $wpdb->prefix . 'postmeta'; //Good practice
$orderno = $wpdb->get_results( "SELECT * FROM $table");
于 2013-06-05T13:47:15.960 回答