Skip to content

Instantly share code, notes, and snippets.

@wturnerharris
Created December 28, 2016 17:26
Show Gist options
  • Save wturnerharris/45cc793f7de5c342aa2d3d786e35ed35 to your computer and use it in GitHub Desktop.
Save wturnerharris/45cc793f7de5c342aa2d3d786e35ed35 to your computer and use it in GitHub Desktop.
Sanitize DB for WooCommerce in MultiDev
<?php
function _sustain_disable_fulfillment_plugin() {
if ( ! function_exists( 'deactivate_plugins' ) ) {
require_once( $_SERVER['DOCUMENT_ROOT'] . '/wp-admin/includes/plugin.php' );
}
deactivate_plugins( 'woocommerce-fulfillment/woocommerce-fulfillment.php', true );
}
function _sustain_delete_orders_data() {
global $wpdb;
$wpdb->query( 'DELETE FROM ' . $wpdb->order_itemmeta );
$wpdb->query( 'DELETE FROM ' . $wpdb->prefix . 'woocommerce_order_items' );
$wpdb->query( 'DELETE FROM ' . $wpdb->postmeta . ' WHERE post_id IN (SELECT ID FROM ' . $wpdb->posts . ' WHERE post_type="shop_order")' );
$wpdb->query( 'DELETE FROM ' . $wpdb->term_relationships . ' WHERE object_id IN (SELECT ID FROM ' . $wpdb->posts . ' WHERE post_type="shop_order")' );
$wpdb->query( 'DELETE FROM ' . $wpdb->posts . ' WHERE post_type="shop_order"' );
}
function _sustain_delete_customers_data() {
global $wpdb;
$sub_query = 'SELECT user_id FROM ' . $wpdb->usermeta . ' WHERE meta_key = "' . $wpdb->prefix . 'capabilities" AND meta_value RLIKE "[[:<:]]customer[[:>:]]"';
$wpdb->query( 'DELETE FROM ' . $wpdb->users . ' WHERE ID in (' . $sub_query . ')' );
$wpdb->query( 'DELETE m1.* FROM ' . $wpdb->usermeta . ' AS m1 INNER JOIN ' . $wpdb->usermeta . ' AS m2 ON m1.user_id = m2.user_id AND m2.meta_key = "' . $wpdb->prefix . 'capabilities" AND m2.meta_value RLIKE "[[:<:]]customer[[:>:]]"' );
}
function _sustain_delete_subscriptions() {
global $wpdb;
$wpdb->query( 'DELETE FROM ' . $wpdb->postmeta . ' WHERE post_id IN (SELECT ID FROM ' . $wpdb->posts . ' WHERE post_type="shop_subscription")' );
$wpdb->query( 'DELETE FROM ' . $wpdb->term_relationships . ' WHERE object_id IN (SELECT ID FROM ' . $wpdb->posts . ' WHERE post_type="shop_subscription")' );
$wpdb->query( 'DELETE FROM ' . $wpdb->posts . ' WHERE post_type="shop_subscription"' );
}
function _sustain_enable_stripe_test_mode() {
$settings = get_option( 'woocommerce_stripe_settings' );
$settings['testmode'] = 'yes';
update_option( 'woocommerce_stripe_settings', $settings );
}
if ( defined( 'PANTHEON_ENVIRONMENT' ) && ( PANTHEON_ENVIRONMENT !== 'live' ) ) {
require_once $_SERVER['DOCUMENT_ROOT'] . '/wp-load.php';
_sustain_disable_fulfillment_plugin();
_sustain_delete_customers_data();
_sustain_enable_stripe_test_mode();
_sustain_delete_subscriptions();
_sustain_delete_orders_data();
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment