Skip to content

Instantly share code, notes, and snippets.

@freddielore
Created March 13, 2022 02:42
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save freddielore/2dc3f1d147e70943c0be443028227197 to your computer and use it in GitHub Desktop.
Save freddielore/2dc3f1d147e70943c0be443028227197 to your computer and use it in GitHub Desktop.
Export WooCommerce GTIN/ISBN/MPN info to CSV for bulk editing
<?php
/** Originally from https://labs.freddielore.com/how-to-export-yoast-woocommerce-gtin-data-to-csv-for-bulk-import/
*/
// add `gtin8`, `gtin12`, `gtin13`, `gtin14`, `isbn`, `mpn` columns in CSV export
add_filter( 'smart_seo_export_fields', 'demo_export_yoast_gtin_data', 8, 1 );
function demo_export_yoast_gtin_data( $fields ){
$fields[] = array( 'gtin8', 'demo_get_gtin8' );
$fields[] = array( 'gtin12', 'demo_get_gtin12' );
$fields[] = array( 'gtin13', 'demo_get_gtin13' );
$fields[] = array( 'gtin14', 'demo_get_gtin14' );
$fields[] = array( 'isbn', 'demo_get_isbn' );
$fields[] = array( 'mpn', 'demo_get_mpn' );
return $fields;
}
function demo_get_gtin8( $post ){
$yoast_gtin_data = get_post_meta( $post->ID, 'wpseo_global_identifier_values', true );
$yoast_gtin_data = maybe_unserialize( $yoast_gtin_data );
return $yoast_gtin_data['gtin8'];
}
function demo_get_gtin12( $post ){
$yoast_gtin_data = get_post_meta( $post->ID, 'wpseo_global_identifier_values', true );
$yoast_gtin_data = maybe_unserialize( $yoast_gtin_data );
return $yoast_gtin_data['gtin12'];
}
function demo_get_gtin13( $post ){
$yoast_gtin_data = get_post_meta( $post->ID, 'wpseo_global_identifier_values', true );
$yoast_gtin_data = maybe_unserialize( $yoast_gtin_data );
return $yoast_gtin_data['gtin13'];
}
function demo_get_gtin14( $post ){
$yoast_gtin_data = get_post_meta( $post->ID, 'wpseo_global_identifier_values', true );
$yoast_gtin_data = maybe_unserialize( $yoast_gtin_data );
return $yoast_gtin_data['gtin14'];
}
function demo_get_isbn( $post ){
$yoast_gtin_data = get_post_meta( $post->ID, 'wpseo_global_identifier_values', true );
$yoast_gtin_data = maybe_unserialize( $yoast_gtin_data );
return $yoast_gtin_data['isbn'];
}
function demo_get_mpn( $post ){
$yoast_gtin_data = get_post_meta( $post->ID, 'wpseo_global_identifier_values', true );
$yoast_gtin_data = maybe_unserialize( $yoast_gtin_data );
return $yoast_gtin_data['mpn'];
}
// tell the importer to process those columns during CSV import
add_action( 'smart_seo_import_update', 'demo_import_yoast_gtin_data', 10, 3 );
function demo_import_yoast_gtin_data($post_id, $data, $headings){
$yoast_gtin = array(
'gtin8' => $data['gtin8'],
'gtin12' => $data['gtin12'],
'gtin13' => $data['gtin13'],
'gtin14' => $data['gtin14'],
'isbn' => $data['isbn'],
'mpn' => $data['mpn']
);
update_post_meta( $post_id, 'wpseo_global_identifier_values', $yoast_gtin );
}
?>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment