Ändern Sie den Checkout “Bestellung aufgeben”, wenn der Einkaufswagen ein bestimmtes Produkt enthält

In WooCommerce suche ich nach einer function, um den “Place Order” -Text zu ändern, wenn der Einkaufswagen ein bestimmtes Produkt (ID) auf der Checkout-Seite hat .

Dies ist nützlich für Woo-Shops, die Produkte verkaufen und gleichzeitig verschiedene Dienste anbieten, zum Beispiel Mitgliedschaften. Dadurch wird der Ortsauftragstext als Call-to-Action-Schaltfläche für das Produkt beschreibender.

Ich gründete diese function für Änderungs “addieren sich” Knopfbuttentext auf einzelner Produktseite, die auf spezifischer Produktid basiert

add_filter( 'woocommerce_product_single_add_to_cart_text', 'woo_custom_cart_button_text' ); function woo_custom_cart_button_text( $text ) { global $product; if ( 123 === $product->id ) { $text = 'Product 123 text'; } return $text; } 

Und den Ortsauftragstext global ändern;

 add_filter( 'woocommerce_order_button_text', 'woo_custom_order_button_text' ); function woo_custom_order_button_text() { return __( 'Your new button text here', 'woocommerce' ); } 

Ich suche, wie man sie für Checkoutseite anpaßt.

Vielen Dank.

Solutions Collecting From Web of "Ändern Sie den Checkout “Bestellung aufgeben”, wenn der Einkaufswagen ein bestimmtes Produkt enthält"

Sie können mit is_page bedingt nach einer Seite is_page so dass die function woo_custom_order_button_text nur für die von Ihnen angegebene Seite zurückkehrt:

 // When any single Page is being displayed. is_page(); // When Page 42 (ID) is being displayed. is_page( 42 ); // When the Page with a post_title of "Contact" is being displayed. is_page( 'Contact' ); // When the Page with a post_name (slug) of "about-me" is being displayed. is_page( 'about-me' ); /* * Returns true when the Pages displayed is either post ID 42, * or post_name "about-me", or post_title "Contact". * Note: the array ability was added in version 2.5. */ is_page( array( 42, 'about-me', 'Contact' ) ); 

Es gibt verschiedene Möglichkeiten, dies anzuwenden. Wenn Sie es sowohl auf das Produkt als auch auf die Seite beschränken möchten, werde ich vielleicht so etwas ausprobieren, bei dem das checkout die Seite ist, auf der die Filter nur ausgeführt werden sollen:

 if( is_page( 'checkout' ) ) { add_filter( 'woocommerce_product_single_add_to_cart_text', 'woo_custom_cart_button_text' ); add_filter( 'woocommerce_order_button_text', 'woo_custom_order_button_text' ); } function woo_custom_cart_button_text( $text ) { global $product; if ( 123 === $product->id ) { $text = 'Product 123 text'; } return $text; } function woo_custom_order_button_text() { return __( 'Your new button text here', 'woocommerce' ); }