【发布时间】:2020-07-02 23:07:54
【问题描述】:
我正在尝试美化我的产品名称,我需要在任何地方应用更改(目录、购物车、结帐、小部件...)等
其实,我做到了:
目录(循环)单品:
add_filter('the_title', 'new_title', 10, 2);
function new_title($title, $id) {
if('product' == get_post_type($id)){
$title = rename_woo_product($title, $id); // My function to rename
}
return $title;
}
在产品标题标签和 yoast 中:
add_filter( 'pre_get_document_title', 'generate_custom_title', 10 );
add_filter('wpseo_title', 'generate_custom_title', 15);
function generate_custom_title($title) {
if( is_singular( 'product') ) {
$title = get_the_title();
}
return $title;
}
购物车和结帐:
add_filter( 'woocommerce_cart_item_name', 'custom_variation_item_name', 10, 3 );
function custom_variation_item_name( $item_name, $cart_item, $cart_item_key ){
$product_item = $cart_item['data'];
$item_name = get_the_title( $cart_item['product_id'] );
if(!empty($product_item) && $product_item->is_type( 'variation' ) ) {
$item_name = $item_name . '<br>' . $cart_item['data']->attribute_summary;
}
if(is_cart()){
$item_name = sprintf( '<a href="%s">%s</a>', esc_url( $cart_item['data']->get_permalink() ), $item_name );
}
return $item_name;
}
我不知道这是否是最好的方法,但它适用于此。但是例如我使用了woocommerce的Recent Viewed Products小部件,并且产品标题没有更新.. Yith 愿望清单也是如此
有没有更好的方法来更新产品名称并将其应用到任何地方?
【问题讨论】:
标签: php wordpress woocommerce