php - 仅在 Woocommerce 结帐页面中将文本附加到总价

标签 php wordpress woocommerce cart checkout

我有以下代码在购物车和结帐页面的总部分中添加后缀文本:

add_filter( 'woocommerce_cart_total', 'custom_total_message' );
function custom_total_message( $price ) {
    $msg = 'Prices for grocery items may vary at store. Final bill will be based on store receipt.<br />';

    return $price . $msg;
}

但是,我只希望后缀文本仅显示在结帐页面中,而不显示在购物车页面中。

我该如何实现?

最佳答案

只需使用 Woocommerce conditional tags限制仅在结帐页面上显示......

现在你应该更好地使用下面的钩子(Hook),以避免出现问题,将 float 与总量上的 stings 融为一体:

add_filter( 'woocommerce_cart_totals_order_total_html', 'custom_total_message_html', 10, 1 );
function custom_total_message_html( $value ) {
    if( is_checkout() )
        $value .= __('Prices for grocery items may vary at store. Final bill will be based on store receipt.') . '<br />';

    return $value;
}

或者在总计之后单独的表格行上更好,改用它:

add_action( 'woocommerce_review_order_after_order_total', 'review_order_after_order_total_callback' );
function review_order_after_order_total_callback(){
    $text = __('Prices for grocery items may vary at store. Final bill will be based on store receipt.');

    ?><tr class="order-total"><th colspan="2"><?php echo $text; ?></th></tr><?php
}

代码继续在您的事件子主题(或主题)的 function.php 文件中。经过测试并有效。


如果您决定保留初始钩子(Hook),请使用以下内容:

add_filter( 'woocommerce_cart_total', 'custom_total_message', 10, 1 );
function custom_total_message( $price ) {
    if( is_checkout() )
        $price .= __('Prices for grocery items may vary at store. Final bill will be based on store receipt.') . '<br />';

    return $price;
}

代码继续在您的事件子主题(或主题)的 function.php 文件中。未经测试。

关于php - 仅在 Woocommerce 结帐页面中将文本附加到总价,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55250626/

相关文章:

php - 使用惰性 php 插件 wordpress 时出错

css - 使用 Bootstrap html 包装 WordPress 菜单项

javascript - Wordpress ajax 与 async false

php - 如果订单商品属于特定产品类别,则结帐重定向后的 Woocommerce

php - 如何在PHP邮件功能中发送图像

Windows 中的 PHP shell_exec 不写入 LPT1

php - 如何使PHP中止与服务器联系的尝试

PHP/MYSQL数据库逻辑查询

css - 延迟覆盖在鼠标移出时消失

php - 从 Woocommerce Bookings 中的购物车项目中获取人员类型名称