Intereting Posts
как добавить таблицу стилей только к определенному плагину? Добавление admin-ajax.php к интерфейсу. Хорошая или плохая идея? Отображать только HTML, если пользовательское поле имеет значение Создайте сообщение Meta Boxes для записи песни Отключить перетаскивание TinyMCE Лучший способ указать «тип статьи» в URL-адресе реализация jQuery «нажмите, чтобы развернуть» ссылку в WordPress Как получить массив элементов меню на панели инструментов? Могу ли я юридически удалить кредит из бесплатного плагина на wordpress.org? Как просмотреть / показать все пользовательские типы сообщений независимо от категории? Как отображать сообщения из определенной категории с помощью функции get_option? как протестировать обновление темы Переадресация доменов нескольких доменов не-www для регистрации Как разбить цикл на два столбца Как я могу перерегистрировать свои виджеты в блогах?

Создание настраиваемого типа сообщений при успешном заказе woocommerce

На странице проверки у меня есть настраиваемое поле, которое сохраняется в метаданных заказа. Мне нужно захватить метаданные заказа и создать настраиваемый тип сообщения и заполнить настраиваемые поля метаданными заказа.

add_action( 'woocommerce_admin_order_data_after_billing_address', 'my_custom_checkout_field_display_admin_order_meta', 10, 1 ); function my_custom_checkout_field_display_admin_order_meta($order){ global $mypass; echo '<p><strong>'.__('My Field').':</strong> ' . get_post_meta( $order->id, 'My Field', true ) . '</p>'; $mypass = get_post_meta( $order->id, 'My Field', true ); } 

Следующие функции создают сообщение при проверке, но не втягивают метаполе, установленное в функции выше

 add_action( 'woocommerce_checkout_update_order_meta', 'create_custom_post' ); function create_custom_post($order, $order_id, $posts) { global $posts; $my_post = array( 'post_title' => 'Page Title', 'post_content' => 'This is my post.', 'post_status' => 'publish', 'post_type' => 'sale', ); $website_url = get_post_meta($order_id->id, 'My Field', true); $new_post_id = wp_insert_post( $my_post ); update_post_meta($new_post_id, 'My Field', $website_url ); } 

Я также попытался установить глобальную переменную на функцию, которая сохраняет данные метаданных

 function recent_post_page($order_status, $order_id, $post, $checkout ) { global $mypass; $order = new WC_Order( $order_id ); $my_post = array( 'post_title' => 'Page title', 'post_content' => 'This is my post.', 'post_status' => 'publish', 'post_type' => 'sale', ); $new_post_id = wp_insert_post( $my_post ); update_post_meta($new_post_id, 'My Field', $mypass ); } add_action( 'woocommerce_payment_complete_order_status', 'recent_post_page', 10, 2 ); 

Любые отзывы оцениваются.

Solutions Collecting From Web of "Создание настраиваемого типа сообщений при успешном заказе woocommerce"

Мне удалось это выяснить, поставив функцию wp_insert_post в ту же функцию, которая сохраняет метаданные заказа

Проверьте $website_url = get_post_meta($order_id->id, 'My Field', true); Вы пытаетесь получить id $order_id .

$order_id является или должен быть строкой. Вам нужно будет:

 get_post_meta($order_id, 'My Field', true); 

или

 get_post_meta($order->ID, 'My Field', true);