current_page = $current_page; $this->woocommerce = $woocommerce; $this->options = $options; } /** * Remove site options after disabling the integration. * * @return bool Returns if the options are deleted */ public function remove_site_options() { return \delete_site_option( 'wordproof_access_token' ) && \delete_site_option( 'wordproof_source_id' ); } /** * Returns if conditionals are met. If not, the integration should be disabled. * * @param bool $return_conditional If the conditional class name that was unmet should be returned. * * @return bool|string Returns if the integration should be disabled. */ public function integration_is_disabled( $return_conditional = false ) { $conditionals = [ new Non_Multisite_Conditional(), new Wordproof_Plugin_Inactive_Conditional() ]; foreach ( $conditionals as $conditional ) { if ( ! $conditional->is_met() ) { if ( $return_conditional === true ) { return ( new ReflectionClass( $conditional ) )->getShortName(); } return true; } } return false; } /** * Returns if the WordProof integration toggle is turned on. * * @return bool Returns if the integration toggle is set to true if conditionals are met. */ public function integration_is_active() { if ( $this->integration_is_disabled() ) { return false; } return $this->options->get( 'wordproof_integration_active', true ); } /** * Return if WordProof should be active for this post editor page. * * @return bool Returns if WordProof should be active for this page. */ public function is_active() { $is_wordproof_active = $this->integration_is_active(); if ( ! $is_wordproof_active ) { return false; } $user_can_publish = ( new User_Can_Publish_Posts_And_Pages_Conditional() )->is_met(); if ( ! $user_can_publish ) { return false; } return ( $this->current_page->current_post_is_privacy_policy() || $this->woocommerce->current_post_is_terms_and_conditions_page() ); } }