2013-11-20 2 views
1

Я пытаюсь написать некоторые php, чтобы отобразить список всех текущих цен (включая варианты) в Woocommerce.Woocommerce - список всех цен

Я очень новичок в php, поэтому не уверен, что я делаю.

Я использую этот код для вывода списка всех страниц и продукции:

постоянных ссылки
<?php 

include "wp-load.php"; 

$posts = new WP_Query('post_type=any&posts_per_page=-1&post_status=publish'); 
$posts = $posts->posts; 
/* 
global $wpdb; 
$posts = $wpdb->get_results(" 
    SELECT ID,post_type,post_title 
    FROM {$wpdb->posts} 
    WHERE post_status<>'auto-draft' AND post_type NOT IN ('revision','nav_menu_item') 
"); 
*/ 

header('Content-type:text/plain'); 
foreach($posts as $post) { 
    switch ($post->post_type) { 
     case 'revision': 
     case 'nav_menu_item': 
      break; 
     case 'page': 
      $permalink = get_page_link($post->ID); 
      break; 
     case 'post': 
      $permalink = get_permalink($post->ID); 
      break; 
     case 'attachment': 
      $permalink = get_attachment_link($post->ID); 
      break; 
     default: 
      $permalink = get_post_permalink($post->ID); 
      break; 
    } 
    echo "\n{$post->post_type}\t{$permalink}\t{$post->post_title}"; 
} 

, который работает очень хорошо. Но я попытался адаптировать его следующим образом:

<?php 

include "wp-load.php"; 

$posts = new WP_Query('post_type=any&posts_per_page=-1&post_status=publish'); 
$posts = $posts->posts; 
/* 
global $wpdb; 
$posts = $wpdb->get_results(" 
    SELECT ID,post_type,post_title 
    FROM {$wpdb->posts} 
    WHERE post_status<>'auto-draft' AND post_type NOT IN ('revision','nav_menu_item') 
"); 
*/ 

header('Content-type:text/plain'); 
foreach($posts as $post) { 
    switch ($post->post_type) { 
     case 'revision': 
    global $product; 
     return $name.' '.$product->get_price_html(); 

    } 
    echo "\n{$post->post_type}\t{$permalink}\t{$post->get_price_html}"; 
} 

Но это, очевидно, не работает. Он просто выводит список типов сообщений.

Может ли кто-нибудь помочь мне адаптировать это к скрипту, который выведет список имен продуктов со связанными с ними ценами, включая варианты? Большое спасибо заранее, я учусь на php!

+0

что вы пытаетесь достичь при адаптации кода? – danyo

+0

Привет, даньо. То, что я пытаюсь достичь, является выходным списком всех продуктов Woocommerce с их _prices_ (включая варианты продукта), чтобы я мог использовать эту информацию для создания четкой передачи данных для Google PLAs. В конечном итоге я хотел бы создать скрипт, который извлекает _all_ информацию в правильном формате для datafeed, но это немного выше моего уровня на данный момент. Первый пример кода отлично работает, чтобы создать список всех URL-адресов («permalinks»), поэтому я подумал, что не будет слишком сложно адаптироваться, чтобы включить цены. «Переменные» продукты (две цены, один URL) могут быть камнем преткновения здесь – user2859245

ответ

0

Вот что вам нужно:

<ul> 
    <?php 
    foreach (get_posts('post_type=product&post_status=publish') as $product) { 
     $product = get_product($product->ID); 
     if ($product->product_type == "variation") 
      continue; 

     if ($product->product_type = "variable") { 
      ?><li><?php echo $product->post->post_title . ": " . $product->get_price_html(); ?> 
       <ul><?php foreach($product->get_children() as $child) { ?> 
        <li><?php $child_product = $product->get_child($child->variation_id); 
           echo $child_product->post->post_title . ": " . $product->get_price_html(); ?> 
        </li><?php } ?> 
       </ul> 
      </li><?php 
     } else { 
      ?><li><?php 
     } 
    } 
    ?> 
</ul> 
+0

Hi Liam. Я не мог заставить это работать извините. Я фактически использую плагин теперь, чтобы создать datafeed, так что не biggy. Спасибо, в любом случае :) – user2859245

Смежные вопросы