2020-09-03 02:56:52 +00:00
|
|
|
<?php
|
|
|
|
/**
|
|
|
|
* Onboarding - set up automated tax calculation.
|
|
|
|
*
|
|
|
|
* @package Woocommerce Admin
|
|
|
|
*/
|
|
|
|
|
|
|
|
namespace Automattic\WooCommerce\Admin\Features;
|
|
|
|
|
|
|
|
use Automattic\WooCommerce\Admin\Features\OnboardingTasks;
|
2020-10-28 17:12:14 +00:00
|
|
|
use Automattic\WooCommerce\Admin\Notes\ConfirmTaxSettings;
|
2020-09-03 02:56:52 +00:00
|
|
|
|
|
|
|
/**
|
|
|
|
* This contains logic for setting up shipping when the profiler completes.
|
|
|
|
*/
|
|
|
|
class OnboardingAutomateTaxes {
|
|
|
|
/**
|
|
|
|
* Constructor.
|
|
|
|
*/
|
|
|
|
public function __construct() {
|
|
|
|
add_action(
|
|
|
|
'woocommerce_onboarding_profile_completed',
|
|
|
|
array(
|
|
|
|
__CLASS__,
|
|
|
|
'on_onboarding_profile_completed',
|
|
|
|
)
|
|
|
|
);
|
2020-09-29 23:57:06 +00:00
|
|
|
|
|
|
|
add_action(
|
|
|
|
'jetpack_authorize_ending_authorized',
|
|
|
|
array(
|
|
|
|
__CLASS__,
|
|
|
|
'on_onboarding_profile_completed',
|
|
|
|
)
|
|
|
|
);
|
2020-09-03 02:56:52 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Set up automated taxes.
|
|
|
|
*/
|
|
|
|
public static function on_onboarding_profile_completed() {
|
|
|
|
$jetpack_connected = null;
|
|
|
|
$wcs_version = null;
|
|
|
|
$wcs_tos_accepted = null;
|
|
|
|
|
|
|
|
if ( class_exists( '\Jetpack_Data' ) ) {
|
|
|
|
$user_token = \Jetpack_Data::get_access_token( JETPACK_MASTER_USER );
|
|
|
|
$jetpack_connected = isset( $user_token->external_user_id );
|
|
|
|
}
|
|
|
|
|
|
|
|
if ( class_exists( '\WC_Connect_Loader' ) ) {
|
|
|
|
$wcs_version = \WC_Connect_Loader::get_wcs_version();
|
|
|
|
}
|
|
|
|
|
|
|
|
if ( class_exists( '\WC_Connect_Options' ) ) {
|
|
|
|
$wcs_tos_accepted = \WC_Connect_Options::get_option( 'tos_accepted' );
|
|
|
|
}
|
|
|
|
|
2020-10-08 01:08:03 +00:00
|
|
|
if ( $jetpack_connected && $wcs_version && $wcs_tos_accepted && self::automated_tax_is_supported() ) {
|
2020-09-03 02:56:52 +00:00
|
|
|
update_option( 'wc_connect_taxes_enabled', 'yes' );
|
|
|
|
update_option( 'woocommerce_calc_taxes', 'yes' );
|
2020-10-08 01:08:03 +00:00
|
|
|
self::track_tax_automation();
|
2020-10-28 17:12:14 +00:00
|
|
|
ConfirmTaxSettings::possibly_add_note();
|
2020-09-03 02:56:52 +00:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Check if automated taxes are supported.
|
|
|
|
*/
|
|
|
|
private static function automated_tax_is_supported() {
|
2020-10-08 01:08:03 +00:00
|
|
|
return in_array( WC()->countries->get_base_country(), OnboardingTasks::get_automated_tax_supported_countries(), true );
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Track when a user has tax automation enabled.
|
|
|
|
*/
|
|
|
|
private static function track_tax_automation() {
|
|
|
|
wc_admin_record_tracks_event( 'tasklist_task_completed', array( 'task_name' => 'tax_automated' ) );
|
2020-09-03 02:56:52 +00:00
|
|
|
}
|
|
|
|
}
|