在WooCommerce結賬頁面上更改“下訂單”按鈕的文本

有時您可能想更改標準的結賬按鈕文本,例如“下訂單”,“繼續進行PayPal”等。在本教程中,我將向您展示幾種方法。

請注意,此文字會根據所選的付款方式動態更改:

如您所見,我已經將文本更改為“提交”

從理論上講,如果您了解WooCommerce模板結構,則可以替換此文件中的按鈕文本:

但請不要這樣做,因為通過鉤子可以實現的。我會展示給您看。

方法1:使用woocommerce_order_button_text鉤子更改文本

最簡單的方法是,將這段代碼復制到當前主題的functions.php文件中(最好是添加到子主題或自定義插件,否則,每次主題更新后,您所做的更改都會丟失)。

/**
 * @snippet       更改“下訂單”按鈕文本 @ WooCommerce Checkout
 * @sourcecode    https://rudrastyh.com/?p=8327#woocommerce_order_button_text
 * @author        Misha Rudrastyh
 */
add_filter( 'woocommerce_order_button_text', 'misha_custom_button_text' );
 
function misha_custom_button_text( $button_text ) {
   return 'Submit'; // 修改這里的文字即可
}

如果購物車中有特定產品,或者購物車中有特定類別的產品,您還可以更改按鈕文本。

add_filter( 'woocommerce_order_button_text', 'misha_custom_button_text_for_product' );
 
function misha_custom_button_text_for_product( $button_text ) {
 
	$product_id = 18; // 可以修改這里的產品ID
 
	if( WC()->cart->find_product_in_cart( WC()->cart->generate_cart_id( $product_id ) ) ) {
		$button_text = 'Submit';
	}
 
	return $button_text;
 
}

方法2:使用woocommerce_order_button_html鉤子更改文本

使用此函數,我們主要是在woocommerce_order_button_html過濾器掛鉤中使用PHP函數 str_replace() 進行文本替換。這是實現方法:

add_filter( 'woocommerce_order_button_html', 'misha_custom_button_html' );
 
function misha_custom_button_html( $button_html ) {
	$button_html = str_replace( 'Place order', 'Submit', $button_html );
	return $button_html;
}

該掛鉤woocommerce_order_button_html僅接受一個參數,即按鈕HTML。該掛鉤還允許您從頭開始創建按鈕的HTML。

add_filter( 'woocommerce_order_button_html', 'misha_custom_button_html' );
 
function misha_custom_button_html( $button_html ) {
	$order_button_text = 'Submit';
        $button_html = '<button type="submit" class="button alt" name="woocommerce_checkout_place_order" id="place_order" value="' . esc_attr( $order_button_text ) . '" data-value="' . esc_attr( $order_button_text ) . '">' . esc_html( $order_button_text ) . '</button>';
}

為支付網關更改按鈕文本

首先,您的自定義支付網關可能沒有這方面的鉤子,其次,當然,您不能直接在支付網關插件文件中進行更改。

那么該怎么辦?JavaScript?當然不!

即使支付網關沒有這個鉤子,它也必須支持本地化。因此,在這種情況下, gettext 鉤子將為我們提供幫助。

/**
 * @snippet       Change "Proceed to PayPal" Button text @ WooCommerce Checkout
 * @sourcecode    https://rudrastyh.com/?p=8327#payment_gateways_text
 * @author        Misha Rudrastyh
 */
add_filter( 'gettext', 'misha_custom_paypal_button_text', 20, 3 );
 
function misha_custom_paypal_button_text( $translated_text, $text, $domain ) {
 
	if( $translated_text == 'Proceed to PayPal' ) { // 檢測舊文本
		$translated_text = 'Pay with PayPal'; // 在這里設置新的按鈕文本
	}
 
	return $translated_text;
}

您可以將此代碼應用于任何支付網關,只需檢測舊的按鈕文本,然后在第10行代碼中替換為新的文本即可。

請小心,因為您要覆蓋的字符串(例如“ Proceed to PayPal”)可能會在您網站的其他地方使用。如果是這樣,只需添加一個條件判斷。

聲明:原文出自 https://rudrastyh.com/woocommerce/place-order-button-text.html ,由 WordPress大學 翻譯整理,轉載請保留本聲明!

倡萌

一個文科IT宅男,喜歡折騰WordPress和被它折騰 ^_^

暫無評論

發表評論