Advertisement
meetsos

WP Update Post/Products from CSV import (example)

Apr 9th, 2019
221
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 2.16 KB | None | 0 0
  1. <?php
  2.     session_start();
  3. ?>
  4. <?php
  5.     require_once(dirname(__FILE__)."/wp-load.php");
  6. ?>
  7. <?php
  8.  
  9. // GET ALL DATA FROM CSV, USE WHAT WE WANT LATER
  10. $row = 1;
  11. if (($handle = fopen("test_csv.csv", "r")) !== FALSE) {
  12.   while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) {
  13.     if($row != 1) {
  14.         $tag = $data[0];
  15.         $category = $data[1];
  16.         $sku = $data[2];
  17.         $name = $data[3];
  18.         $available = $data[4];
  19.         $stock = $data[5];
  20.         $price = $data[6];
  21.         $published = $data[7];
  22.  
  23.         // QUERY TO DB TO GET THE POST_ID OF EACH PRODUCT BASED ON SKU
  24.         $product_id = $wpdb->get_var( $wpdb->prepare( "SELECT post_id FROM $wpdb->postmeta WHERE meta_key='_sku' AND meta_value='%s' LIMIT 1", $sku ) );
  25.  
  26.         // UPDATE PRICE
  27.         update_post_meta($product_id,'_regular_price',$price);
  28.         update_post_meta($product_id,'_price',$price);
  29.         update_post_meta($product_id,'_stock',$stock);
  30.  
  31.         // UPDATE PRODUCT TAG
  32.         // wp_set_post_tags not working for products, use wp_set_object_terms instead
  33.         wp_set_object_terms($product_id, array($tag), 'product_tag');
  34.  
  35.         // UPDATE PRODUCT CATEGORY
  36.         // Gets term object from the database.
  37.         $term = get_term_by('name', $category, 'product_cat');
  38.         wp_set_object_terms($product_id, $term->term_id, 'product_cat');
  39.  
  40.         // UPDATE WP_POSTS TABLE DATA
  41.         // if 0 is publish, else 1 is private
  42.         if($published == 1) {
  43.                     $my_post = array(
  44.                           'ID'       => $product_id,
  45.                           'post_title'      => $name,
  46.                           'post_status'   => 'publish',
  47.                           'post_modified' => date("Y-m-d H:i:s")
  48.                       );    
  49.                 } else {
  50.                     $my_post = array(
  51.                           'ID'       => $product_id,
  52.                           'post_title'      => $name,
  53.                           'post_status'   => 'private',
  54.                           'post_modified' => date("Y-m-d H:i:s")
  55.                       );
  56.                 }
  57.  
  58.                 wp_update_post( $my_post );
  59.     }
  60. $row++;
  61. }
  62. fclose($handle);
  63. }
  64.  
  65. ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement