<?php
add_action( 'woocommerce_new_order', 'my_status_pending' );
function my_status_pending( $order_id ){
global $woocommerce;
$order = new WC_Order( $order_id );
// Получаем данные с заполненной формы заказа.
$my_billing = $order->data['billing'];
// Все родительские категории товара будут записаны в нижеследующую переменную.
$all_catigories_of_these_products = "";
// В данную переменную попадают все товары из корзины.
$items = $order->get_items();
// Итоговая сумма за все товары.
$total_sum = 0;
// Сообщение для отправки в telegram.
$msg_for_tg =
'Номер заказа: ' . $order->get_order_number() . "; \n" .
'Имя:' . $my_billing['first_name'] . "; \n" .
'Фамилия: ' . $my_billing['last_name'] . "; \n" .
'Номер дома и название улицы: ' . $my_billing['address_1'] . "; \n" .
'Номер телефона: ' . $my_billing['phone'] . "; \n";
?>
Пытаюсь получить данные billing, но не получается. Вот что выходит в итоге.
Заказы я также создаю сам:
<?php
function make_order() {
global $woocommerce;
$data = $_POST;
if( empty( $data['name'] ) || empty( $data['surname'] ) || empty( $data['address'] ) || empty( $data['phone'] ) ) {
echo 'Error: Переданы не все данные. Пожалуйста заполните все поля!';
wp_die();
}
$address = array(
'first_name' => $data['name'],
'last_name' => $data['surname'],
'phone' => $data['phone'],
'address_1' => $data['address']
);
// Now we create the order
$order = wc_create_order();
$order->update_status("processing", 'Order');
$order->set_address($address, 'billing');
foreach ( $woocommerce->cart->get_cart() as $cart_item_key => $values ) {
$order->add_product( wc_get_product( $values['product_id'] ), $values['quantity'] );
}
$order->calculate_totals();
$woocommerce->cart->empty_cart();
}
?>
Как же мне получить данные заказа?
Вы создаете заказ функцией wc_create_order()
. Немедленно срабатывает хук woocommerce_new_order
, в котором вы пытаетесь прочитать данные адреса, которые ещё не внесли в объект заказа.
Что надо сделать:
update_status
и set_address
woocommerce_order_status_changed
Примерно так:
add_action( 'woocommerce_order_status_changed', 'woocommerce_order_status_changed_action' );
function woocommerce_order_status_changed_action( $id, $from, $to, $_this ) {
// ваш код
}
Оборудование для ресторана: новинки профессиональной кухонной техники
Частный дом престарелых в Киеве: комфорт, забота и профессиональный уход
Всем привет, я хочу сделать экспорт csv документа, для этого я использую Response:
Нужно написать стандартный запрос к БД используя PDO php ничего сложногоВот запрос, который я использую:
Всем добрый день, как правильно подставить две переменные в условие запроса mysql ? Видимо проблема с ковычкамиКонфиг сервера :