Se vuoi rimuovere tutti gli ordini WooCommerce e i relativi dati dal tuo sito di Staging prima di consegnarlo al tuo sviluppatore, puoi seguire uno di questi due approcci:
Esegui uno script SQL sul sito di Staging
Eseguire questo script SQL sul sito di Staging eliminerà gli ordini WooCommerce e anche i loro metadati
DELETE wpstg0_posts, wpstg0_postmeta, wpstg0_woocommerce_order_items, wpstg0_woocommerce_order_itemmeta
FROM wpstg0_posts
LEFT JOIN wpstg0_postmeta ON wpstg0_posts.ID = wpstg0_postmeta.post_id
LEFT JOIN wpstg0_woocommerce_order_itemmeta ON wpstg0_postmeta.post_id = wpstg0_woocommerce_order_itemmeta.order_item_id
LEFT JOIN wpstg0_woocommerce_order_items ON wpstg0_posts.ID = wpstg0_woocommerce_order_items.order_item_id
WHERE wpstg0_posts.post_type = "shop_order"
AND wpstg0_posts.post_date < '2022-07-14';Devi modificare wpstg0_ con il prefisso corretto delle tabelle del sito di Staging e cambiare 2022-07-14 con la data del giorno attuale prima della quale vuoi eliminare gli ordini.
Puoi anche racchiudere questo comando SQL in una funzione e eseguirlo immediatamente dopo la clonazione del sito di Staging usando il filtro “wpstg.clone_first_run“.
add_action( 'wpstg.clone_first_run', array($this, 'wpstg_execute_after_cloning' ), 10);
function wpstg_execute_after_cloning() {
// add your code
}Puoi usare quel filtro nel Plugin WP STAGING Hooks o come mu-plugin standard seguendo questa guida.
Escludi gli ordini WooCommerce e i loro metadati durante la creazione del sito di Staging
Puoi anche escludere gli ordini WooCommerce e i loro metadati all’inizio del processo di clonazione.
Per farlo, puoi usare questo filtro:
function queryCloningRows($filters) {
$myFilters = [
// Clone only posts which do not belong to post_type shop_order
'wp_posts' => [
'post_type' => [
'operator' => 'NOT LIKE',
'value' => 'shop_order'
]
],
// will filter postmeta depending upon filtered data in wp_posts, see above wp_posts filter
'wp_postmeta' => [
'join' => [
'table' => 'wp_posts',
'primaryKey' => 'ID',
'foreignKey' => 'post_id',
]
],
'wp_woocommerce_order_items' => [
'join' => [
'table' => 'wp_posts',
'primaryKey' => 'ID',
'foreignKey' => 'post_id',
]
],
'wp_woocommerce_order_itemmeta' => [
'join' => [
'table' => 'wp_posts',
'primaryKey' => 'ID',
'foreignKey' => 'post_id',
]
]
];
return array_merge($filters, $myFilters);
}
add_filter('wpstg.cloning.database.queryRows', 'queryCloningRows');Questo filtro può essere usato nel Plugin WP STAGING Hooks o come mu-plugin standard seguendo questa guida.
NOTA: seguendo gli approcci sopra eliminerai tutti gli ordini e i relativi dati dal sito di Staging. Questo significa che non puoi eseguire il push del sito di Staging al sito live, perché in tal modo elimineresti anche gli ordini WooCommerce dal tuo sito live. Quindi questa procedura dovrebbe essere usata solo per scopi di test e sviluppo (se sei disposto a copiare manualmente le modifiche al sito live dopo che il tuo sviluppatore avrà finito).