从 Woocommerce 第 3 方插件更改文本
Changing a text from a Woocommerce 3rd party plugin
我正在使用 WooCommerce Wishlist 并想将 添加的产品 更改为其他内容。
这是片段:
public static function add_to_wishlist_button( $url, $product_type, $exists ) {
_deprecated_function( 'add_to_wishlist_button', '2.0.0', 'add-to-wishlist-button.php template' );
global $yith_wcwl, $product;
$product_id = yit_get_product_id( $product );
$label_option = get_option( 'yith_wcwl_add_to_wishlist_text' );
$localize_label = function_exists( 'icl_translate' ) ? icl_translate( 'Plugins', 'plugin_yit_wishlist_button', $label_option ) : $label_option;
$label = apply_filters( 'yith_wcwl_button_label', $localize_label );
$icon = get_option( 'yith_wcwl_add_to_wishlist_icon' ) != 'none' ? '<i class="fa ' . get_option( 'yith_wcwl_add_to_wishlist_icon' ) . '"></i>' : '';
$classes = get_option( 'yith_wcwl_use_button' ) == 'yes' ? 'class="add_to_wishlist single_add_to_wishlist button alt"' : 'class="add_to_wishlist"';
$html = '<div class="yith-wcwl-add-to-wishlist">';
$html .= '<div class="yith-wcwl-add-button'; // the class attribute is closed in the next row
$html .= $exists ? ' hide" style="display:none;"' : ' show"';
$html .= '><a href="' . esc_url( add_query_arg( 'add_to_wishlist', $product_id ) ) . '" data-product-id="' . $product_id . '" data-product-type="' . $product_type . '" ' . $classes . ' >' . $icon . $label . '</a>';
$html .= '<img src="' . esc_url( admin_url( 'images/wpspin_light.gif' ) ) . '" class="ajax-loading" alt="loading" width="16" height="16" style="visibility:hidden" />';
$html .= '</div>';
$html .= '<div class="yith-wcwl-wishlistaddedbrowse hide" style="display:none;"><span class="feedback">' . __( 'Product added!','yith-woocommerce-wishlist' ) . '</span> <a href="' . esc_url( $url ) . '">' . apply_filters( 'yith-wcwl-browse-wishlist-label', __( 'Browse Wishlist', 'yith-woocommerce-wishlist' ) ) . '</a></div>';
$html .= '<div class="yith-wcwl-wishlistexistsbrowse ' . ( $exists ? 'show' : 'hide' ) . '" style="display:' . ( $exists ? 'block' : 'none' ) . '"><span class="feedback">' . __( 'The product is already in the wishlist!', 'yith-woocommerce-wishlist' ) . '</span> <a href="' . esc_url( $url ) . '">' . apply_filters( 'yith-wcwl-browse-wishlist-label', __( 'Browse Wishlist', 'yith-woocommerce-wishlist' ) ) . '</a></div>';
$html .= '<div style="clear:both"></div><div class="yith-wcwl-wishlistaddresponse"></div>';
$html .= '</div>';
$html .= '<div class="clear"></div>';
return $html;
}
从 function.php
更改该文本的最佳做法是什么
由于字符串已经包装到函数 __($string, $domain)
中,您无需使用任何代码或编辑 functions.php 即可轻松翻译它。
你只需要一个翻译插件(我建议使用 Loco Translate)。
- 安装插件
- 安装后转到 "Loco Translate" > "Plugins" 使用 WP 仪表板上的左栏菜单
- 您将看到您网站上当前安装的插件列表,select 您用来管理 WooCommerce Whislists 的插件
- 然后 select 列表中的语言,如果没有您的语言,请单击 "New language"(如果要创建新语言,请插入语言设置)
- Select你要翻译的字符串,把译文放在底部文本区
- 保存
我看到你已经接受了一个答案,但你问过要将它放入一个函数中,下面是方法。过滤器 gettext
接受 3 个参数 gettext Hook
// Change text strings and make sure you're only on the specic text domain
function dd_change_text_strings( $translated_text, $text, $domain ) {
switch ( $translated_text ) {
case 'Product added!' :
// Make sure you're only using the phrase in the specific text domain you want.
if ($domain == 'yith-woocommerce-wishlist'){
$translated_text = __( 'Something Else','your_text_domain');
} else {
// otherwise use the default text, in case Product addded! is used somewhere else in another text domain
// This is optional
$translated_text = __( 'Product added!', $domain);
}
break;
}
return $translated_text;
}
add_filter( 'gettext', 'dd_change_text_strings', 20, 3 );
我个人...我宁愿添加几行代码也不愿使用整个插件(这可能会向我的网站添加脚本和 css 开销)来完成这个小片段的功能。
我正在使用 WooCommerce Wishlist 并想将 添加的产品 更改为其他内容。 这是片段:
public static function add_to_wishlist_button( $url, $product_type, $exists ) {
_deprecated_function( 'add_to_wishlist_button', '2.0.0', 'add-to-wishlist-button.php template' );
global $yith_wcwl, $product;
$product_id = yit_get_product_id( $product );
$label_option = get_option( 'yith_wcwl_add_to_wishlist_text' );
$localize_label = function_exists( 'icl_translate' ) ? icl_translate( 'Plugins', 'plugin_yit_wishlist_button', $label_option ) : $label_option;
$label = apply_filters( 'yith_wcwl_button_label', $localize_label );
$icon = get_option( 'yith_wcwl_add_to_wishlist_icon' ) != 'none' ? '<i class="fa ' . get_option( 'yith_wcwl_add_to_wishlist_icon' ) . '"></i>' : '';
$classes = get_option( 'yith_wcwl_use_button' ) == 'yes' ? 'class="add_to_wishlist single_add_to_wishlist button alt"' : 'class="add_to_wishlist"';
$html = '<div class="yith-wcwl-add-to-wishlist">';
$html .= '<div class="yith-wcwl-add-button'; // the class attribute is closed in the next row
$html .= $exists ? ' hide" style="display:none;"' : ' show"';
$html .= '><a href="' . esc_url( add_query_arg( 'add_to_wishlist', $product_id ) ) . '" data-product-id="' . $product_id . '" data-product-type="' . $product_type . '" ' . $classes . ' >' . $icon . $label . '</a>';
$html .= '<img src="' . esc_url( admin_url( 'images/wpspin_light.gif' ) ) . '" class="ajax-loading" alt="loading" width="16" height="16" style="visibility:hidden" />';
$html .= '</div>';
$html .= '<div class="yith-wcwl-wishlistaddedbrowse hide" style="display:none;"><span class="feedback">' . __( 'Product added!','yith-woocommerce-wishlist' ) . '</span> <a href="' . esc_url( $url ) . '">' . apply_filters( 'yith-wcwl-browse-wishlist-label', __( 'Browse Wishlist', 'yith-woocommerce-wishlist' ) ) . '</a></div>';
$html .= '<div class="yith-wcwl-wishlistexistsbrowse ' . ( $exists ? 'show' : 'hide' ) . '" style="display:' . ( $exists ? 'block' : 'none' ) . '"><span class="feedback">' . __( 'The product is already in the wishlist!', 'yith-woocommerce-wishlist' ) . '</span> <a href="' . esc_url( $url ) . '">' . apply_filters( 'yith-wcwl-browse-wishlist-label', __( 'Browse Wishlist', 'yith-woocommerce-wishlist' ) ) . '</a></div>';
$html .= '<div style="clear:both"></div><div class="yith-wcwl-wishlistaddresponse"></div>';
$html .= '</div>';
$html .= '<div class="clear"></div>';
return $html;
}
从 function.php
更改该文本的最佳做法是什么由于字符串已经包装到函数 __($string, $domain)
中,您无需使用任何代码或编辑 functions.php 即可轻松翻译它。
你只需要一个翻译插件(我建议使用 Loco Translate)。
- 安装插件
- 安装后转到 "Loco Translate" > "Plugins" 使用 WP 仪表板上的左栏菜单
- 您将看到您网站上当前安装的插件列表,select 您用来管理 WooCommerce Whislists 的插件
- 然后 select 列表中的语言,如果没有您的语言,请单击 "New language"(如果要创建新语言,请插入语言设置)
- Select你要翻译的字符串,把译文放在底部文本区
- 保存
我看到你已经接受了一个答案,但你问过要将它放入一个函数中,下面是方法。过滤器 gettext
接受 3 个参数 gettext Hook
// Change text strings and make sure you're only on the specic text domain
function dd_change_text_strings( $translated_text, $text, $domain ) {
switch ( $translated_text ) {
case 'Product added!' :
// Make sure you're only using the phrase in the specific text domain you want.
if ($domain == 'yith-woocommerce-wishlist'){
$translated_text = __( 'Something Else','your_text_domain');
} else {
// otherwise use the default text, in case Product addded! is used somewhere else in another text domain
// This is optional
$translated_text = __( 'Product added!', $domain);
}
break;
}
return $translated_text;
}
add_filter( 'gettext', 'dd_change_text_strings', 20, 3 );
我个人...我宁愿添加几行代码也不愿使用整个插件(这可能会向我的网站添加脚本和 css 开销)来完成这个小片段的功能。