Вы делаете это неправильно, но вы достаточно близко.
Не добавляйте элементы на страницу оформления заказа напрямую с Elementor. Поскольку вы просто хотите добавить элементы вверху и внизу формы оформления заказа, вы можете сделать это, используя хук woocommerce_before_checkout_form
для верхней части формы оформления заказа и woocommerce_after_checkout_form
для нижней части формы оформления заказа.
Если вы действительно хотите использовать Elementor для оформления элементов верхней и нижней части формы оформления заказа, то я предлагаю сделать это так, как вы создали свой шаблон спасибо, а затем использовать его шорткод.
Например, Вы создали шаблон, предназначенный для верхней и нижней части формы оформления заказа, а шорткод выглядит как [my-top-design]
и [my-bottom-design]
. Затем go на ваш function.php
и выполните следующие действия.
/** This will add your template designed for the top of the checkout form **/
add_action('woocommerce_before_checkout_form', 'custom_top_checkout_form');
function custom_top_checkout_form(){
echo do_shortcode('[my-top-design]');
/**You can also insert an html tag here instead of the shortcode of your template..**/
// echo '<h2>Some top elements...</h2>';
}
/** This will add your template designed for the bottom of the checkout form **/
add_action('woocommerce_after_checkout_form', 'custom_bottom_checkout_form');
function custom_bottom_checkout_form(){
echo do_shortcode('[my-bottom-design]');
/**You can also insert an html tag here instead of the shortcode of your template..**/
// echo '<h2>Some bottom elements...</h2>';
}
После размещения заказа вся форма оформления заказа, включая верхний и нижний элементы, исчезнет и заменит ее страницей с благодарностью. .
Теперь, благодаря вашей странице спасибо, вы можете переопределить ее, используя Переопределение шаблона WooCommerce .
Скопируйте: / WP-содержание / плагины / WooCommerce / шаблоны / фотографии / большое спасибо. php. В вашей активной теме должно быть что-то вроде этого: /wp-content/themes/activetheme/woocommerce/checkout/thankyou.php
Затем отредактируйте thankyou.php
и удалите ненужную информацию вместо вашего пользовательского шаблона благодарности, снова используя шорткод.
Это будет примерно так.
<?php
defined( 'ABSPATH' ) || exit;
?>
<div class="woocommerce-order">
<?php if ( $order ) :
do_action( 'woocommerce_before_thankyou', $order->get_id() ); ?>
<?php if ( $order->has_status( 'failed' ) ) : ?>
<p class="woocommerce-notice woocommerce-notice--error woocommerce-thankyou-order-failed"><?php esc_html_e( 'Unfortunately your order cannot be processed as the originating bank/merchant has declined your transaction. Please attempt your purchase again.', 'woocommerce' ); ?></p>
<p class="woocommerce-notice woocommerce-notice--error woocommerce-thankyou-order-failed-actions">
<a href="<?php echo esc_url( $order->get_checkout_payment_url() ); ?>" class="button pay"><?php esc_html_e( 'Pay', 'woocommerce' ); ?></a>
<?php if ( is_user_logged_in() ) : ?>
<a href="<?php echo esc_url( wc_get_page_permalink( 'myaccount' ) ); ?>" class="button pay"><?php esc_html_e( 'My account', 'woocommerce' ); ?></a>
<?php endif; ?>
</p>
<?php else : ?>
<?php
//your custom template here...
echo do_shortcode('[custom-thankyou-054]');
?>
<?php endif; ?>
<?php else : ?>
<p class="woocommerce-notice woocommerce-notice--success woocommerce-thankyou-order-received"><?php echo apply_filters( 'woocommerce_thankyou_order_received_text', esc_html__( 'Thank you. Your order has been received.', 'woocommerce' ), null ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?></p>
<?php endif; ?>
</div>