Si quieres eliminar todos los pedidos de WooCommerce y sus datos de tu sitio de staging antes de entregárselo a tu desarrollador, puedes seguir uno de estos dos enfoques:
Ejecutar un script SQL en el sitio de staging
Ejecutar este script SQL en el sitio de staging eliminará los pedidos de WooCommerce y sus metadatos también
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';Debes cambiar wpstg0_ al prefijo de tabla correcto de tu sitio de staging y cambiar 2022-07-14 a la fecha del día actual antes del que quieras eliminar los pedidos.
También puedes envolver este comando SQL en una función y ejecutarlo inmediatamente tras clonar el sitio de staging usando el filter «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
}Puedes usar ese filter en el Plugin WP STAGING Hooks o como mu-plugin estándar siguiendo esta guía.
Exclude WooCommerce Orders and their Metadata When Creating the Staging Site
También puedes excluir los pedidos de WooCommerce y sus metadatos al comienzo del proceso de clonado.
Para eso, puedes usar este filter:
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');Este filter se puede usar en el Plugin WP STAGING Hooks o como mu-plugin estándar siguiendo esta guía.
NOTA: Seguir los enfoques anteriores eliminará todos los pedidos y sus datos relacionados del sitio de staging. Eso significa que no puedes publicar el sitio de staging al sitio en vivo porque esto también eliminaría los pedidos de WooCommerce de tu sitio en vivo. Por tanto, solo debe usarse con fines de prueba y desarrollo (si estás dispuesto a copiar las modificaciones manualmente al sitio en vivo cuando tu desarrollador haya terminado).