Forum Replies Created

Viewing 1 replies (of 1 total)
  • I had it working but it was only moving the item_ID Ive been messing with it to use the item_name field instead but to no luke and I wanted to share what i gut before aI pass out

    <?php
    /*
    * Plugin Name: WooCommerce Add Taxonomy to Export
    * Plugin URI: https://gist.github.com/helgatheviking/114c8df50cabb7119b3c895b1d854533/
    * Description: Add a custom taxonomy to WooCommerce import/export.
    * Version: 1.0.1
    * Author: Kathy Darling
    * Author URI: https://kathyisawesome.com/
    *
    * Woo: 18716:fbca839929aaddc78797a5b511c14da9
    *
    * Text Domain: woocommerce-product-bundles
    * Domain Path: /languages/
    *
    * Requires at least: 5.0
    * Tested up to: 5.0
    *
    * WC requires at least: 3.5
    * WC tested up to: 3.5.4
    *
    * Copyright: ? 2017-2019 SomewhereWarm SMPC.
    * License: GNU General Public License v3.0
    * License URI: https://www.gnu.org/licenses/gpl-3.0.html
    */
    
    // Exit if accessed directly.
    if ( ! defined( 'ABSPATH' ) ) {
    	exit;
    }
    /**
    * Add CSV columns for exporting extra data.
    *
    * @param  array  $columns
    * @return array  $columns
    */
    function kia_add_columns( $columns ) {
    	$columns[ 'custom_taxonomy' ] = __( 'Vape Types', 'vape-type-taxonomy'  );
    	return $columns;
    }
    add_filter( 'woocommerce_product_export_column_names', 'kia_add_columns' );
    add_filter( 'woocommerce_product_export_product_default_columns', 'kia_add_columns' );
    
    /**
    * MnM contents data column content.
    *
    * @param  mixed       $value
    * @param  WC_Product  $product
    * @return mixed       $value
    */
    function kia_export_taxonomy( $value, $product ) {
    
    	$terms = get_terms( array( 'object_ids' => $product->get_ID(), 'taxonomy' => 'vape_types'    ) );
    
    	if ( ! is_wp_error( $terms ) ) {
    
    		$data = array();
    
    		foreach ( (array) $terms as $term ) {
    			$data[] = $term_name;
    		}
    
    		$value = json_encode( $data );
    
    	}
    
    	return $value;
    }
    add_filter( 'woocommerce_product_export_product_column_custom_taxonomy', 'kia_export_taxonomy', 10, 2 );
    
    /**
     * Import
     */
    
    /**
     * Register the 'Custom Column' column in the importer.
     *
     * @param  array  $columns
     * @return array  $columns
     */
    function kia_map_columns( $columns ) {
    	$columns[ 'vape_types' ] = __( 'Vape Types', 'vape-type-taxonomy' );
    	return $columns;
    }
    add_filter( 'woocommerce_csv_product_import_mapping_options', 'kia_map_columns' );
    
    /**
     * Add automatic mapping support for custom columns.
     *
     * @param  array  $columns
     * @return array  $columns
     */
    function kia_add_columns_to_mapping_screen( $columns ) {
    
    	$columns[ __( 'Vape Types', 'vape-type-taxonomy' ) ] 	= 'vape_types';
    
    	// Always add English mappings.
    	$columns[ 'Vape Types' ]	= 'Vape Types';
    
    	return $columns;
    }
    add_filter( 'woocommerce_csv_product_import_mapping_default_columns', 'kia_add_columns_to_mapping_screen' );
    
    /**
     * Decode data items and parse JSON IDs.
     *
     * @param  array                    $parsed_data
     * @param  WC_Product_CSV_Importer  $importer
     * @return array
     */
    function kia_parse_taxonomy_json( $parsed_data, $importer ) {
    
    	if ( ! empty( $parsed_data[ 'Vape Types' ] ) ) {
    
    		$data = json_decode( $parsed_data[ 'Vape Types' ], true );
    
    		unset( $parsed_data[ 'Vape Types' ] );
    
    		if ( is_array( $data ) ) {
    
    			$parsed_data[ 'Vape Types' ] = array();
    
    			foreach ( $data as $term ) {
    				$parsed_data[ 'Vape Types' ][] = $term_name;
    			}
    		}
    	}
    
    	return $parsed_data;
    }
    add_filter( 'woocommerce_product_importer_parsed_data', 'kia_parse_taxonomy_json', 10, 2 );
    
    /**
     * Set taxonomy.
     *
     * @param  array  $parsed_data
     * @return array
     */
    function kia_set_taxonomy( $product, $data ) {
    
    	if ( is_a( $product, 'WC_Product' ) ) {
    
    		if( ! empty( $data[ 'Vape Types' ] ) ) {
    			wp_set_object_terms( $product->get_id(),  (array) $data[ 'Vape Types' ], 'vape_types' );
    		}
    
    	}
    
    	return $product;
    }
    add_filter( 'woocommerce_product_import_inserted_product_object', 'kia_set_taxonomy', 10, 2 );
    
Viewing 1 replies (of 1 total)