2016-04-03 2 views
1

Ich möchte alle Produktdaten in der WooCommerce (Produkt SKU, Name, Preis, Lagerbestand, Verfügbarkeit und etc.) erhalten Kann ich das mit WP-Abfrage tun?Wie bekomme ich alle Produkte in WooCommerce programmatisch?

+0

In woocommerce plugin die alle templete bereits existiert finden sie und kopieren sie code zu ihrem benutzerdefinierten templet e ... sie sind benutzerdefinierte Post-Typen mit Meta hinzugefügt Sie können auch benutzerdefinierte Post-Typ-Abfrage und erhalten Post-Meta-Methode –

+2

Nur einen freundlichen Tipp, möchten Sie vielleicht über diese Seite lesen: [How-To-Ask Guide] (https: //stackoverflow.com/help/how-to-ask), damit Sie immer sicher sein können, dass Ihre Fragen leicht zu beantworten und so klar wie möglich sind. Stellen Sie sicher, dass Sie alle Anstrengungen unternommen haben, die Sie unternommen haben, um das Problem zu beheben, das Sie haben, und was passiert ist, als Sie diese Korrekturen versuchten. Vergessen Sie auch nicht Ihren Code und eventuelle Fehlermeldungen! –

+1

Alle Produktdaten sind Post-Meta. Aber ich stimme Matthew zu, es ist nicht klar, was du fragst. – helgatheviking

Antwort

1

Wenn Ihr Gebäude aus Ihrer Anfrage an den Pfosten Typen eingestellt Produkt

$query->set('post_type', 'product'); 

zu sein, und das wird nur durch WooCommerce Produkte suchen.

Auch wenn Sie ein Thema erstellen, können Sie jede Datei aus dem Verzeichnis /wp-content/plugins/woocommerce/templates/ nehmen und in /wp-content/themes/<yourTheme>/woocommerce einfügen, um jede Woocommerce-Seite zu überschreiben.

3

Auf diese Weise können Sie alle Produkte über wp_query erhalten:

global $wpdb; 

$all_product_data = $wpdb->get_results("SELECT ID,post_title,post_content,post_author,post_date_gmt FROM `" . $wpdb->prefix . "posts` where post_type='product' and post_status = 'publish'"); 

Und wenn Sie dann weitere Produktdaten wollen wird es so sein:

$product = wc_get_product($product_id); 
$product->product_type; 
get_post_meta($prodyct_id, '_regular_price'); 
$product->get_available_variations(); 
1

Vielen Dank für alle reply.I Entschlossenheit haben das wie wogen

$full_product_list = array(); 
$loop = new WP_Query(array('post_type' => array('product', 'product_variation'), 'posts_per_page' => -1)); 

    while ($loop->have_posts()) : $loop->the_post(); 
     $theid = get_the_ID(); 
     $product = new WC_Product($theid); 
     if (get_post_type() == 'product_variation') { 

      // ****************** end error checking ***************** 
     } else { 
      $sku = get_post_meta($theid, '_sku', true); 
      $selling_price = get_post_meta($theid, '_sale_price', true); 
      $regular_price = get_post_meta($theid, '_regular_price', true); 
      $description=get_the_content(); 
      $thetitle = get_the_title(); 

     } 
     // add product to array but don't add the parent of product variations 
     if (!empty($sku)) 
      $full_product_list[] = array("PartyID" => (int) $party_id,"Description"=> $description, 
       "ExternalNumber" => $theid, "ProductName" => $thetitle, "sku" => $sku, 
       "RegularPrice" => $regular_price, "SellingPrice" => $selling_price, 
       "ExternalProductCategoryId" => $cat_id, "ExternalProductCategoryName" => $cat_name); 
    endwhile;