Я создаю свой плагин Woocommerce, и мне нужно поместить некоторый контент рядом со своими входами с помощью всплывающей подсказки. Я нашел эту функцию: wc_help_tip()
от Woocommerce Docs но я не понимаю и не работает.
Вот мой код:
<?php
$tip = "test";
echo wc_help_tip($tip, false);
?>
Когда я отлаживал с F12, я видел содержимое диапазона:
<span class="woocommerce-help-tip" data-tip="test"></span>
Но ничего не появляется в интерфейсе.
Есть идеи по этому поводу? Или что-то еще, чтобы поставить родную подсказку WordPress?
РЕДАКТИРОВАТЬ : Мне нужно использовать его в пользовательской бэкэнд-странице администратора, а не в пользовательской и административной страницах woocommerce
Эта функция предназначена для бэкэнда…
Ниже у вас есть пример, который выведет подсказка в порядке редактирования страниц:
// Displayed in Order edit pages below order details on top first column
add_action( 'woocommerce_admin_order_data_after_order_details', 'displaying_tooltip_in_order_edit_pages', 10, 1 );
function displaying_tooltip_in_order_edit_pages( $order ){
?>
<p class="form-field form-field-wide wc-customer-custom">Some text with a tooltip <?php echo wc_help_tip("hello world"); ?></p>
<?php
}
Код помещается в файл function.php активной дочерней темы (или активной темы).
Проверено и работает.
Поэтому, если вы добавите некоторый код для отображения некоторых пользовательских полей или контента на страницах администратора woocommerce через хуки, вы можете добавить эти подсказки с помощью
wc_help_tip()
функция
Вы должны добавить свой идентификатор экрана в WooCommerce. Использовать фильтр woocommerce_screen_ids
Пример:
add_filter('woocommerce_screen_ids', [ $this, 'set_wc_screen_ids' ] );
public function set_wc_screen_ids( $screen ){
$screen[] = 'your_screen_id';
return $screen;
}
Убедитесь, что вы поставили JS в TipTip для этого. Вот код, который может вам помочь. Скопируйте приведенный ниже код и вставьте туда, где ставятся все ваши файлы javascript.
<?php
wp_register_script( 'woocommerce_admin', WC()->plugin_url() . '/assets/js/admin/woocommerce_admin.js', array( 'jquery', 'jquery-blockui', 'jquery-ui-sortable', 'jquery-ui-widget', 'jquery-ui-core', 'jquery-tiptip' ), WC_VERSION );
$locale = localeconv();
$decimal = isset( $locale['decimal_point'] ) ? $locale['decimal_point'] : '.';
$params = array(
/* translators: %s: decimal */
'i18n_decimal_error' => sprintf( __( 'Please enter in decimal (%s) format without thousand separators.', 'woocommerce' ), $decimal ),
/* translators: %s: price decimal separator */
'i18n_mon_decimal_error' => sprintf( __( 'Please enter in monetary decimal (%s) format without thousand separators and currency symbols.', 'woocommerce' ), wc_get_price_decimal_separator() ),
'i18n_country_iso_error' => __( 'Please enter in country code with two capital letters.', 'woocommerce' ),
'i18_sale_less_than_regular_error' => __( 'Please enter in a value less than the regular price.', 'woocommerce' ),
'decimal_point' => $decimal,
'mon_decimal_point' => wc_get_price_decimal_separator(),
'strings' => array(
'import_products' => __( 'Import', 'woocommerce' ),
'export_products' => __( 'Export', 'woocommerce' ),
),
'urls' => array(
'import_products' => esc_url_raw( admin_url( 'edit.php?post_type=product&page=product_importer' ) ),
'export_products' => esc_url_raw( admin_url( 'edit.php?post_type=product&page=product_exporter' ) ),
),
);
wp_localize_script( 'woocommerce_admin', 'woocommerce_admin', $params );
wp_enqueue_script( 'woocommerce_admin' );