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 の動作の家族に関しては、誰もがプロリートであると想定しています。

ですから、誰かが私を正しい方向に向けることができれば、本当に感謝しています. そして、私の好みの方法である 2 番目のコード ブロックの原因に対処する方法を説明していただければ、長い間お待ちしております。

敬具、DK

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 に答える