Jeśli chcesz usunąć wszystkie zamówienia WooCommerce i ich dane z witryny staging przed przekazaniem jej deweloperowi, możesz zastosować jedno z dwóch podejść:
Uruchom skrypt SQL na witrynie staging
Uruchomienie tego skryptu SQL na witrynie staging usunie zamówienia WooCommerce oraz ich metadane
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';Musisz zmienić wpstg0_ na poprawny prefiks tabel witryny staging, a 2022-07-14 na bieżącą datę, przed którą chcesz usunąć zamówienia.
Możesz też opakować to polecenie SQL w funkcję i uruchomić ją natychmiast po sklonowaniu witryny staging przy użyciu filtra „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
}Możesz użyć tego filtra w pluginu WP STAGING Hooks lub jako standardowy mu-plugin zgodnie z tym przewodnikiem.
Wyklucz zamówienia WooCommerce i ich metadane przy tworzeniu witryny staging
Możesz też wykluczyć zamówienia WooCommerce i ich metadane na początku procesu klonowania.
Aby to zrobić, użyj tego filtra:
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');Ten filtr można użyć w pluginu WP STAGING Hooks lub jako standardowy mu-plugin zgodnie z tym przewodnikiem.
UWAGA: Stosowanie powyższych podejść usunie wszystkie zamówienia i ich dane z witryny staging. To oznacza, że nie możesz wykonać push witryny staging na żywą, ponieważ usunęłoby to także zamówienia WooCommerce z żywej witryny. Dlatego należy tego używać tylko do celów testowych i deweloperskich (jeśli jesteś gotowy ręcznie skopiować modyfikacje na żywą witrynę po zakończeniu pracy dewelopera).