add: tax task completion filter (#51362)

* add: tax task completion filter

* fix: add phpcs ignore for missing hook comment

* lint
This commit is contained in:
RJ 2024-09-17 11:33:41 +10:00 committed by GitHub
parent e4d995938f
commit 0036b4d293
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 11 additions and 2 deletions

View File

@ -0,0 +1,4 @@
Significance: patch
Type: add
Adds a filter for third party tax plugins to indicate that they have completed the tax task

View File

@ -15,6 +15,7 @@ class Tax extends Task {
/** /**
* Used to cache is_complete() method result. * Used to cache is_complete() method result.
*
* @var null * @var null
*/ */
private $is_complete_result = null; private $is_complete_result = null;
@ -109,12 +110,16 @@ class Tax extends Task {
*/ */
public function is_complete() { public function is_complete() {
if ( $this->is_complete_result === null ) { if ( $this->is_complete_result === null ) {
$wc_connect_taxes_enabled = get_option( 'wc_connect_taxes_enabled' ); $wc_connect_taxes_enabled = get_option( 'wc_connect_taxes_enabled' );
$is_wc_connect_taxes_enabled = ( $wc_connect_taxes_enabled === 'yes' ) || ( $wc_connect_taxes_enabled === true ); // seems that in some places boolean is used, and other places 'yes' | 'no' is used $is_wc_connect_taxes_enabled = ( $wc_connect_taxes_enabled === 'yes' ) || ( $wc_connect_taxes_enabled === true ); // seems that in some places boolean is used, and other places 'yes' | 'no' is used
// phpcs:ignore WooCommerce.Commenting.CommentHooks.MissingHookComment -- We will replace this with a formal system by WC 9.6 so lets not advertise it yet.
$third_party_complete = apply_filters( 'woocommerce_admin_third_party_tax_setup_complete', false );
$this->is_complete_result = $is_wc_connect_taxes_enabled || $this->is_complete_result = $is_wc_connect_taxes_enabled ||
count( TaxDataStore::get_taxes( array() ) ) > 0 || count( TaxDataStore::get_taxes( array() ) ) > 0 ||
get_option( 'woocommerce_no_sales_tax' ) !== false; get_option( 'woocommerce_no_sales_tax' ) !== false ||
$third_party_complete;
} }
return $this->is_complete_result; return $this->is_complete_result;