)['id'] ) { if ( empty( $additional_data ) ) { $additional_data = array(); } $additional_data['wooPaymentsIncentiveId'] = $this->get_incentive()['id']; } return $additional_data; } /** * Check if we have an incentive available to show. * * @param bool $skip_wcpay_active Whether to skip the check for the WooPayments plugin being active. * * @return bool Whether we have an incentive available to show. */ public function has_incentive( bool $skip_wcpay_active = false ): bool { // The WooPayments plugin must not be active. if ( ! $skip_wcpay_active && $this->is_wcpay_active() ) { return false; } // Suggestions not disabled via a setting. if ( get_option( 'woocommerce_show_marketplace_suggestions', 'yes' ) === 'no' ) { return false; } /** * Filter allow marketplace suggestions. * * User can disable all suggestions via filter. * * @since 3.6.0 */ if ( ! apply_filters( 'woocommerce_allow_marketplace_suggestions', true ) ) { return false; } $incentive = $this->get_incentive(); if ( empty( $incentive ) ) { return false; } if ( $this->is_incentive_dismissed( $incentive ) ) { return false; } return $this->suggestion_incentives->is_incentive_visible( $incentive['id'], PaymentExtensionSuggestions::WOOPAYMENTS, WC()->countries->get_base_country(), $skip_wcpay_active ); } /** * Get the WooPayments incentive details, if available. * * @return array|null The incentive details. Null if there is no incentive available. */ private function get_incentive(): ?array { return $this->suggestion_incentives->get_incentive( PaymentExtensionSuggestions::WOOPAYMENTS, WC()->countries->get_base_country(), self::INCENTIVE_TYPE, true ); } /** * Check if the WooPayments plugin is active. * * @return boolean */ private function is_wcpay_active(): bool { return class_exists( '\WC_Payments' ); } /** * Check if the current incentive has been manually dismissed. * * @param array $incentive The incentive details. * * @return boolean */ private function is_incentive_dismissed( array $incentive ): bool { /* * First, check the legacy option. */ $dismissed_incentives = get_option( 'wcpay_welcome_page_incentives_dismissed', array() ); if ( ! empty( $dismissed_incentives ) ) { // Search the incentive ID in the dismissed incentives list. if ( in_array( $incentive['id'], $dismissed_incentives, true ) ) { return true; } } /* * Second, use the new logic. */ return $this->suggestion_incentives->is_incentive_dismissed( $incentive['id'], PaymentExtensionSuggestions::WOOPAYMENTS, 'wc_payments_task' ); } /** * Get the slug of the active payments task. * * It can be either 'woocommerce-payments' or 'payments'. * * @return string Either 'woocommerce-payments' or 'payments'. Empty string if no task is found. */ private function get_active_payments_task_slug(): string { $setup_task_list = TaskLists::get_list( 'setup' ); $extended_task_list = TaskLists::get_list( 'extended' ); // The task pages are not available if the task lists don't exist or are not visible. // Bail early if we have no task to work with. if ( ( empty( $setup_task_list ) || ! $setup_task_list->is_visible() ) && ( empty( $extended_task_list ) || ! $extended_task_list->is_visible() ) ) { return ''; } // The Payments task in the setup task list. if ( ! empty( $setup_task_list ) && $setup_task_list->is_visible() ) { $payments_task = $setup_task_list->get_task( 'payments' ); if ( ! empty( $payments_task ) && $payments_task->can_view() ) { return 'payments'; } } // The Additional Payments task in the extended task list. if ( ! empty( $extended_task_list ) && $extended_task_list->is_visible() ) { $payments_task = $extended_task_list->get_task( 'payments' ); if ( ! empty( $payments_task ) && $payments_task->can_view() ) { return 'payments'; } } // The WooPayments task in the setup task list. if ( ! empty( $setup_task_list ) && $setup_task_list->is_visible() ) { $payments_task = $setup_task_list->get_task( 'woocommerce-payments' ); if ( ! empty( $payments_task ) && $payments_task->can_view() ) { return 'woocommerce-payments'; } } return ''; } /** * Get the WooCommerce setup task list Payments task instance. * * @return Task|null The Payments task instance. null if the task is not found. */ private function get_payments_task(): ?Task { $task_list = TaskLists::get_list( 'setup' ); if ( empty( $task_list ) ) { return null; } $payments_task = $task_list->get_task( 'payments' ); if ( empty( $payments_task ) ) { return null; } return $payments_task; } /** * Determine if the WooCommerce setup task list Payments task is complete. * * @return bool True if the Payments task is complete, false otherwise. */ private function is_payments_task_complete(): bool { $payments_task = $this->get_payments_task(); return ! empty( $payments_task ) && $payments_task->is_complete(); } }
Fatal error: Uncaught Error: Class 'Automattic\WooCommerce\Internal\Admin\WcPayWelcomePage' not found in /home/htzanetatos/public_html/wp-content/plugins/woocommerce/includes/class-woocommerce.php:343 Stack trace: #0 /home/htzanetatos/public_html/wp-content/plugins/woocommerce/includes/class-woocommerce.php(237): WooCommerce->init_hooks() #1 /home/htzanetatos/public_html/wp-content/plugins/woocommerce/includes/class-woocommerce.php(155): WooCommerce->__construct() #2 /home/htzanetatos/public_html/wp-content/plugins/woocommerce/woocommerce.php(47): WooCommerce::instance() #3 /home/htzanetatos/public_html/wp-content/plugins/woocommerce/woocommerce.php(62): WC() #4 /home/htzanetatos/public_html/wp-settings.php(526): include_once('/home/htzanetat...') #5 /home/htzanetatos/public_html/wp-config.php(83): require_once('/home/htzanetat...') #6 /home/htzanetatos/public_html/wp-load.php(50): require_once('/home/htzanetat...') #7 /home/htzanetatos/public_html/wp-blog-header.php(13): require_once('/home/htzanetat...') #8 /home/htzane in /home/htzanetatos/public_html/wp-content/plugins/woocommerce/includes/class-woocommerce.php on line 343