mgibbs189

{{gist file=”test.php” lang=”php”}}
<?php

/**
* Get a list of all options/modifier field names across all BigCommerce products
*
* Although this takes only a single query, that query could potentially return a LOT of data
* causing a considerable server strain for large shops.
*
* It would be awesome if something like this was a V3 endpoint instead 🙂
*/
function get_all_bigcommerce_options() {
global $wpdb;

$option_names = [];

$sql = ”
SELECT meta_key, meta_value
FROM {$wpdb->prefix}postmeta
WHERE meta_key IN (‘bigcommerce_options_data’, ‘bigcommerce_modifier_data’)”;
$results = (array) $wpdb->get_results( $sql );

foreach ( $results as $result ) {
$which = ( ‘bigcommerce_options_data’ == $result->meta_key ) ? ‘option’ : ‘modifier’;
$data = json_decode( $result->meta_value );
foreach ( $data as $row ) {

// using array keys to prevent duplicates
$option_names[ $which . ‘-‘ . $row->name ] = true; // e.g. option-Color
}
}

return array_keys( $option_names );
}
{{/gist}}