Upsert Custom Site Metadata to QPilot
In this example, a developer inserts custom site metadata to be stored in QPilot. This will update whenever a Scheduled Order processes. You can check QPilot Site metadata with an API client like Postman, using QPilot's documentation:
https://docs.qpilot.cloud/reference/sites
Remember: Always test new code on a staging site before adding it to your live site
Code Example:
/**
* Extend the Site Metadata to include additional information
* This example shows how to add a list of current active payment gateways
*
* @param array $metadata The current site MetaData
* @param array $sitemeta The currently passed site metadata
* @param array $defaults The default QPilot Autoship Site Metadata.
*
* @return array The filtered Site Metadata.
*/
function xx_add_additional_site_metadata( $metadata, $sitemeta, $defaults ){
// Get the current available gateways
$gateways = WC()->payment_gateways->get_available_payment_gateways();
$enabled_gateways = array();
if( !empty( $gateways ) ) {
foreach( $gateways as $gateway ) {
// Add any that are enabled/active
if( $gateway->enabled == 'yes' ) {
$enabled_gateways[] = $gateway->id;
}
}
}
// Include our new key and values if there are any active
if ( !empty( $enabled_gateways ) )
$metadata['xx_active_payment_gateways'] = $enabled_gateways;
return $metadata;
}
add_filter('autoship_qpilot_sitemeta_upsert', 'xx_add_additional_site_metadata', 10, 3 );
Custom QPilot Site Metadata Added (Postman):
