2013-05-22 5 views
3

안녕하세요,WooCommerce 쿼리

저는 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 표준 WP/화장실 기능을 사용하여 쿼리를 작성

답변

3

은 간단합니다. 예를 들어 특정 주문에 대한 고객 세부 정보를 얻으려는 경우. 필요한 코드는 다음과 같습니다 (글로벌 함수에 주목하십시오) :

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");