Automattic\WooCommerce\Internal\Features
FeaturesController::get_setting_for_feature()
Get the parameters to display the setting enable/disable UI for a given feature.
Метод класса: FeaturesController{}
Хуки из метода
Возвращает
Массив
. The parameters to add to the settings array.
Использование
// private - только в коде основоного (родительского) класса $result = $this->get_setting_for_feature( $feature_id, $feature ): array;
- $feature_id(строка) (обязательный)
- The feature id.
- $feature(массив) (обязательный)
- The feature parameters, as returned by get_features.
Код FeaturesController::get_setting_for_feature() FeaturesController::get setting for feature WC 9.6.0
private function get_setting_for_feature( string $feature_id, array $feature ): array { $description = $feature['description'] ?? ''; $disabled = false; $desc_tip = ''; $tooltip = $feature['tooltip'] ?? ''; $type = $feature['type'] ?? 'checkbox'; $setting_definition = $feature['setting'] ?? array(); // phpcs:disable WooCommerce.Commenting.CommentHooks.MissingSinceComment /** * Filter allowing WooCommerce Admin to be disabled. * * @param bool $disabled False. */ $admin_features_disabled = apply_filters( 'woocommerce_admin_disabled', false ); // phpcs:enable WooCommerce.Commenting.CommentHooks.MissingSinceComment if ( ( 'analytics' === $feature_id || 'new_navigation' === $feature_id ) && $admin_features_disabled ) { $disabled = true; $desc_tip = __( 'WooCommerce Admin has been disabled', 'woocommerce' ); } elseif ( 'new_navigation' === $feature_id ) { $update_text = sprintf( // translators: 1: line break tag. __( '%1$s This navigation will soon become unavailable while we make necessary improvements. If you turn it off now, you will not be able to turn it back on.', 'woocommerce' ), '<br/>' ); $needs_update = version_compare( get_bloginfo( 'version' ), '5.6', '<' ); if ( $needs_update && current_user_can( 'update_core' ) && current_user_can( 'update_php' ) ) { $update_text = sprintf( // translators: 1: line break tag, 2: open link to WordPress update link, 3: close link tag. __( '%1$s %2$sUpdate WordPress to enable the new navigation%3$s', 'woocommerce' ), '<br/>', '<a href="' . self_admin_url( 'update-core.php' ) . '" target="_blank">', '</a>' ); $disabled = true; } if ( ! empty( $update_text ) ) { $description .= $update_text; } } if ( ! $this->is_legacy_feature( $feature_id ) && ! $disabled && $this->verify_did_woocommerce_init() ) { $plugin_info_for_feature = $this->get_compatible_plugins_for_feature( $feature_id, true ); $desc_tip = $this->plugin_util->generate_incompatible_plugin_feature_warning( $feature_id, $plugin_info_for_feature ); } /** * Filter to customize the description tip that appears under the description of each feature in the features settings page. * * @since 7.1.0 * * @param string $desc_tip The original description tip. * @param string $feature_id The id of the feature for which the description tip is being customized. * @param bool $disabled True if the UI currently prevents changing the enable/disable status of the feature. * @return string The new description tip to use. */ $desc_tip = apply_filters( 'woocommerce_feature_description_tip', $desc_tip, $feature_id, $disabled ); $feature_setting_defaults = array( 'title' => $feature['name'], 'desc' => $description, 'type' => $type, 'id' => $this->feature_enable_option_name( $feature_id ), 'disabled' => $disabled && ! $this->force_allow_enabling_features, 'desc_tip' => $desc_tip, 'tooltip' => $tooltip, 'default' => $this->feature_is_enabled_by_default( $feature_id ) ? 'yes' : 'no', ); $feature_setting = wp_parse_args( $setting_definition, $feature_setting_defaults ); /** * Allows to modify feature setting that will be used to render in the feature page. * * @param array $feature_setting The feature setting. Describes the feature: * - title: The title of the feature. * - desc: The description of the feature. Will be displayed under the title. * - type: The type of the feature. Could be any of supported settings types from `WC_Admin_Settings::output_fields`, but if it's anything other than checkbox or radio, it will need custom handling. * - id: The id of the feature. Will be used as the name of the setting. * - disabled: Whether the feature is disabled or not. * - desc_tip: The description tip of the feature. Will be displayed as a tooltip next to the description. * - tooltip: The tooltip of the feature. Will be displayed as a tooltip next to the name. * - default: The default value of the feature. * @param string $feature_id The id of the feature. * @since 8.0.0 */ return apply_filters( 'woocommerce_feature_setting', $feature_setting, $feature_id ); }