Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
0.00% covered (danger)
0.00%
0 / 14
0.00% covered (danger)
0.00%
0 / 1
CRAP
0.00% covered (danger)
0.00%
0 / 1
Deactivator
0.00% covered (danger)
0.00%
0 / 14
0.00% covered (danger)
0.00%
0 / 1
12
0.00% covered (danger)
0.00%
0 / 1
 deactivate
0.00% covered (danger)
0.00%
0 / 14
0.00% covered (danger)
0.00%
0 / 1
12
1<?php
2/**
3 * Fired during plugin deactivation
4 *
5 * @link       http://example.com
6 * @since      1.0.0
7 *
8 * @package    BH_WC_Address_Validation
9 * @subpackage BH_WC_Address_Validation/includes
10 */
11
12namespace BrianHenryIE\WC_Address_Validation\WP_Includes;
13
14use BrianHenryIE\WC_Address_Validation\WooCommerce\Order_Status;
15
16/**
17 * Fired during plugin deactivation.
18 *
19 * This class defines all code necessary to run during the plugin's deactivation.
20 *
21 * @since      1.0.0
22 * @package    BH_WC_Address_Validation
23 * @subpackage BH_WC_Address_Validation/includes
24 * @author     Brian Henry <BrianHenryIE@gmail.com>
25 */
26class Deactivator {
27
28    const DEACTIVATED_BAD_ADDRESS_META_KEY = 'bh-wc-address-validation-was-bad-address';
29
30    /**
31     * Changes all orders with bad-address status to on-hold.
32     * Add a meta-key indicating they were previously bad-address which is checked when reactivated.
33     *
34     * @since    1.0.0
35     */
36    public static function deactivate(): void {
37
38        if ( ! function_exists( 'wc_get_orders' ) ) {
39            return;
40        }
41
42        /** @var \WC_Order[] $orders */
43        $orders = wc_get_orders(
44            array(
45                'limit'    => -1,
46                'status'   => array( 'wc-' . Order_Status::BAD_ADDRESS_STATUS ),
47                'paginate' => false,
48            )
49        );
50
51        foreach ( $orders as $order ) {
52            $order_note = 'Changed from Bad Address on plugin deactivation.';
53            $order->set_status( 'on-hold', $order_note );
54            $order->add_meta_data( self::DEACTIVATED_BAD_ADDRESS_META_KEY, gmdate( DATE_ATOM ), true );
55            $order->save();
56        }
57    }
58}