我有两个代码可以更改woocommerce变量产品上的产品名称。 第一个在任何地方都可以正常使用,但不能在我的“ floating cart plugin”中使用(它使用默认的产品名称)。
add_action( 'woocommerce_before_calculate_totals', 'custom_cart_items_prices', 10, 1 );
function custom_cart_items_prices( $cart ) {
if ( is_admin() && ! defined( 'DOING_AJAX' ) )
return;
if ( did_action( 'woocommerce_before_calculate_totals' ) >= 2 )
return;
foreach ( $cart->get_cart() as $cart_item ) {
$product = $cart_item['data'];
$modell = $product->get_attribute('pa_modell');
$reparatur = $product->get_attribute('pa_reparatur');
$original_name = method_exists( $product, 'get_name' ) ? $product->get_name() : $product->post->post_title;
$new_name = '<class="new-product-name">' . $original_name . __( " ", "woocommerce") . $modell . __( " - ", "woocommerce") . $reparatur;
if( method_exists( $product, 'set_name' ) )
$product->set_name( $new_name );
else
$product->post->post_title = $new_name;
}
}
第二个正在使用我的“ floating cart plugin”,但是如果我也使用它,那么我在购物车和结帐页面表上的名字相同2次。
function show_model_in_cart_items( $item_name, $cart_item, $cart_item_key ) {
$product = $cart_item['data'];
$modell = $product->get_attribute('pa_modell');
$reparatur = $product->get_attribute('pa_reparatur');
{
$item_name = '<class="product-model">' . $item_name . __( " ", "woocommerce") . $modell . __( " - ", "woocommerce") . $reparatur;
}
return $item_name;
}
add_filter( 'woocommerce_cart_item_name', 'show_model_in_cart_items', 99, 3 );
此代码的某些部分可在Internet上找到,其他部分则来自我本人。 有没有人知道如何组合它,使其在购物车中两次都不用相同名称的情况下都能工作?
答案 0 :(得分:0)
我找到了解决方案。有时它是如此简单...就像简单的if and else。
add_filter( 'woocommerce_cart_item_name', 'show_model_in_cart_items', 99, 3 );
function show_model_in_cart_items( $item_name, $cart_item, $cart_item_key ) {
if ( is_checkout() ) {
return $item_name;
}
else {
$product = $cart_item['data'];
$modell = $product->get_attribute('pa_modell');
$reparatur = $product->get_attribute('pa_reparatur');
{
$item_name = '<class="reparatur-beschreibung">' . $item_name . __( " ", "woocommerce") . $modell . __( " - ", "woocommerce") . $reparatur;
}
return $item_name;
}}
现在浮动购物车插件可以在任何地方使用它,除了结帐处(我有其他代码可以更正产品标题)