我有一个关于以下话题的问题? 我try 了Change checkout submit button text for a specific payment method in WooCommerce个应答代码,但没有对 checkout 提交按钮文本进行任何更改.

我的目标是,通过 Select 任何方法,文本将更改为相同的方法或所需的文本"例如,如果 Select 了"Cod"(cash on delivery)或"Check"或"bacs"或...按钮文本也将更改为不同的文本.

如有任何帮助,我们不胜感激.


最新情况:

然后我试了试更新后的答案(同样的链接),它工作了2秒钟,文本被改回了默认的答案.

推荐答案

我发现了一种更简洁的方式,使用PHP和一些jQuery在支付方式更改时"更新_ checkout ".这在所有情况下都适用,所以它也适用于你:

// Update checkout on payment method change (jQuery)
add_action( 'woocommerce_checkout_init', 'trigger_update_checkout_on_payment_method_change' );
function trigger_update_checkout_on_payment_method_change(){
    wc_enqueue_js("$('form.checkout').on( 'change', 'input[name=payment_method]', function(){
        $(document.body).trigger('update_checkout');
    });");
}

// Change the displayed text on the checkout submit button based on payment methods
add_filter( 'woocommerce_order_button_html', 'custom_place_order_button_html', 900 );
function custom_place_order_button_html( $button_html ) {
    $original_text  = __( 'Place order', 'woocommerce' ); // Default button text
    $custom_text    = __( 'Request a Quote', 'woocommerce' ); // For "COD" payment method

    if( WC()->session->get('chosen_payment_method') === 'cod' && ! is_wc_endpoint_url() ) {
        $button_html = str_replace( $original_text, $custom_text, $button_html );
    }
    return $button_html;
}

代码放在子主题的unctions.php文件或插件文件中.

Php相关问答推荐

419注册期间Laravel 11中的错误

Symfony Monolog:使用多个格式化程序

Laravel:启动下载并同时在Blade 中显示Flash消息

根据特定运输类别增加WooCommerce购物车总重量

在WooCommerce管理订单页面中显示区域名称

使用PHP阅读XML提要

ForHumans函数中的月当量与单位限制

从目录文件夹中获取文件并追加到 Select 下拉列表(选项)-wordpress/wc

PHP -流加密启用服务器切断字节

在WooCommerce循环中添加子类别和产品之间的分隔符

从 WooCommerce 购物车中删除总计部分,同时保留小计行

按类别层次 struct 过滤 Laravel 集合

为什么从一个页面到另一个页面都找不到 JQuery,因为它们使用相同的 twig 模板?

PHP API - 本地主机中的 SSL 证书问题

使用 wp_footer 挂钩添加一些 CSS 不起作用

使用用户元数据填写 woocommerce checkout 字段

如何将文件上传添加到 WooCommerce 结帐?

如何在 laravel 中的同一个 slug 上显示不同的内容?

为什么 AJAX 请求没有通过 is_ajax_request() codeigniter 的条件?

PHP - 如何获取发送到脚本的查询参数