Tukar teks butang "Bayar Sekarang" pada halaman daftar keluar WooCommerce agar sepadan dengan pilihan gerbang pembayaran
P粉395056196
2023-08-16 14:51:27
<p>Saya telah mencuba selama berjam-jam sekarang dan tidak dapat memastikan perkara "asas" ini berfungsi. </p>
<p>Saya mempunyai banyak gerbang pembayaran yang tersedia dan saya perlu memasukkan nama mereka (termasuk jumlah pesanan) dalam teks butang "Bayar Sekarang". </p>
<p><strong>Contoh</strong>: "<kod>Gunakan Stripe untuk membayar pesanan $49</code>"</p>
<p>Saya mempunyai sekeping kod yang dikatakan mengemas kini pembayaran secara automatik apabila menukar get laluan.Tolong, ada sesiapa boleh tolong? </p>
<pre class="brush:php;toolbar:false;">add_filter( 'woocommerce_order_button_text', 'order_button_text_based_on_gateway', 10, 1 );
function order_button_text_based_on_gateway( $cart ) {
// Pastikan kami mendapat gerbang pembayaran
$payment_method = WC()->session->get( 'chosen_payment_method' );
// Berdasarkan gerbang yang berbeza, paparkan teks butang yang berbeza (butang pesanan)
if ( $payment_method == ' bacs ' ) {
return sprintf( '%s %s', __('Buat pesanan dan bayar', 'woocommerce'),
strip_tags( WC()->cart->get_total() ) .
}
elseif ( $payment_method == ' semak ' ) {
return sprintf( '%s %s', __('Buat pesanan dan bayar', 'woocommerce'),
strip_tags( WC()->cart->get_total() ) 'Gunakan cek peribadi' );
}
elseif ( $payment_method == ' cod ' ) {
return sprintf( '%s %s', __('Buat pesanan dan bayar', 'woocommerce'),
strip_tags( WC()->cart->get_total() ) 'Tunai semasa penghantaran' );
}
elseif ( $payment_method == ' etco ' ) {
return sprintf( '%s %s', __('Letakkan pesanan dan bayar', 'woocommerce'),
strip_tags( WC()->cart->get_total() ) ;
}
lain ( $payment_method == ' stripe ' ) {
return sprintf( '%s %s', __('Buat pesanan dan bayar', 'woocommerce'),
strip_tags( WC()->cart->get_total() ) );
}
}</pre>
<p><strong>Autokemas kini skrip daftar keluar: </strong></p>
<pre class="brush:php;toolbar:false;">add_action( 'wp_footer', 'reload_checkout_based_on_gateway_change', 999 );
fungsi reload_checkout_based_on_gateway_change() {
jika ( is_checkout() && ! is_admin() ) {
//Tamatkan PHP dan mulakan SCRIPT
?>
<skrip>
( fungsi( $ ) {
$( 'form.checkout' ).on( 'change', 'input[name^="payment_method"]', function() {
$( 'body' ).trigger( 'update_checkout' );
}
);
}
)
(jQuery);
</skrip>
<?php
}
}</pre>
<p><br /></p>
Terdapat banyak ralat dalam kod anda:
'cheque'
和'cheque'
adalah dua rentetan berbeza.Jadi di antara semua penyata if, tiada kaedah pembayaran yang sepadan.
else
tidak menyokong sebarang parameter keadaan.Terdapat beberapa cara untuk menukar teks butang "Buat Pesanan" pembayaran:
Atau anda juga boleh menggunakan atribut
WC_Payment_Gateway
的order_button_text
, seperti yang ditunjukkan di bawah:Letakkan kod dalam fail functions.php tema anak anda (atau dalam pemalam). Ia telah diuji dan berfungsi dengan baik.