Skip to content

Instantly share code, notes, and snippets.

@Kodzhesyan
Last active March 5, 2023 16:02
Show Gist options
  • Save Kodzhesyan/686e7f4b9d52778db31476b66b74808f to your computer and use it in GitHub Desktop.
Save Kodzhesyan/686e7f4b9d52778db31476b66b74808f to your computer and use it in GitHub Desktop.
Не телефонувати (чекбокс в кешауте)
<?php
// Додайте чекбокс на сторінку оформлення замовлення
add_action( 'woocommerce_after_checkout_billing_form', 'add_no_call_checkbox' );
function add_no_call_checkbox( $checkout ) {
woocommerce_form_field( 'no_call', array(
'type' => 'checkbox',
'class' => array('form-row-wide'),
'label' => __('Телефонувати мені не потрібно.'),
), $checkout->get_value( 'no_call' ));
}
// Збережіть значення чекбокса в метаданих замовлення
add_action( 'woocommerce_checkout_create_order', 'save_no_call_checkbox' );
function save_no_call_checkbox( $order ) {
if (isset($_POST['no_call'])) {
$order->update_meta_data('_no_call', 'Не дзвонити');
} else {
$order->update_meta_data('_no_call', 'Дзвонити');
}
}
// Відобразіть значення чекбокса в лістінгу замовлень в адмінці
add_filter( 'manage_edit-shop_order_columns', 'add_no_call_column' );
function add_no_call_column( $columns ) {
$columns['no_call'] = 'Телефонування';
return $columns;
}
add_action( 'manage_shop_order_posts_custom_column', 'display_no_call_column' );
function display_no_call_column( $column ) {
global $post;
if ( $column == 'no_call' ) {
$no_call = get_post_meta( $post->ID, '_no_call', true );
echo $no_call ? $no_call : '-';
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment