PHP-код для экспорта заказов с переменными продуктами из WoocommercePhp

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 PHP-код для экспорта заказов с переменными продуктами из Woocommerce

Сообщение Anonymous »

Я пытался разными способами отфильтровать определенные заказы из WooCommerce, которые содержат соответствующие простые и переменные продукты (с информацией ACF), а затем экспортировать их через XML моему партнеру по выполнению заказов.
Для что я использую плагины WP ALL EXPORT PRO и ACF со специальным кодом:
ИСПОЛЬЗУЕТСЯ В XML-РЕДАКТОРЕ WP ALL EXPORT PLUGIN

Код: Выделить всё




{Bestell ID}
2


{Shipping First Name} {Shipping Last Name}
{Shipping Company}
{Shipping Address 1}
{Shipping Address 2}
{Shipping Country}
{Shipping Postcode}
{Shipping City}
{Customer Account Email Address}




[my_get_order_items({Bestell ID})]




ИСПОЛЬЗУЕТСЯ В ФУНКЦИИ PHP-РЕДАКТОРА ПЛАГИНА ЭКСПОРТА WP ALL

Код: Выделить всё

function my_get_order_items($Bestell_id) {
// Check if the Bestell ID is valid
if (!$Bestell_id) {
return false;
}

// Fetch the order
$order = wc_get_order($Bestell_id);
if (!$order) {
return false;
}

// Initialize the string to store order details
$order_details = "";

// Loop through each order item
foreach ($order->get_items() as $item_id => $item) {
// Get the product object
$product = $item->get_product();

// Skip if there's no product associated with the item
if (!$product)
{ continue; }

if (!(
strpos($item->get_name(), 'KERAMIKTASSE') !== false ||
strpos($item->get_name(), 'BAUMWOLLTASCHE') !== false ||
strpos($item->get_name(), 'T-SHIRT') !== false))
{ continue; }

$order_details .= "**LT**item**GT**";
$order_details .= "**LT**ID**GT**" . $product->get_sku() . "**LT**/ID**GT**";
$order_details .= "**LT**produktname**GT**" . $item->get_name() . "**LT**/produktname**GT**";
$order_details .= "**LT**amount**GT**" . $item->get_quantity() . "**LT**/amount**GT**";
$order_details .= "**LT**upload**GT**" . maybe_serialize( get_field( 'upload', $product->get_id() ) ) . "**LT**/upload**GT**";
$order_details .= "**LT**size**GT**" . maybe_serialize( get_field( 'size', $product->get_id() ) ) . "**LT**/size**GT**";
$order_details .= "**LT**groesse**GT**" . maybe_serialize( get_field( 'produktgröße', $product->get_id() ) )  . "**LT**/groesse**GT**";
$order_details .= "**LT**material**GT**" . maybe_serialize( get_field( 'material', $product->get_id() ) ) . "**LT**/material**GT**";
$order_details .= "**LT**print**GT**" . maybe_serialize( get_field( 'print', $product->get_id() ) ) . "**LT**/print**GT**";
$order_details .= "**LT**variante**GT**" . maybe_serialize( get_field( 'variante', $product->get_id() ) ) . "**LT**/variante**GT**";
$order_details .= "**LT**category**GT**" . maybe_serialize( get_field( 'category', $product->get_id() ) ) . "**LT**/category**GT**";

//add options to the output
$order_details .= "**LT**Options**GT**";
$order_details .= "**LT**Option**GT****LT**ID**GT**" . "1996" . "**LT**/ID**GT****LT**Value**GT**" . maybe_serialize( get_field( 'value_115', $product->get_id() ) ) . "**LT**/Value**GT****LT**/Option**GT**";

$order_details .= "**LT**Option**GT****LT**ID**GT**" . "2489" . "**LT**/ID**GT****LT**Value**GT**" . maybe_serialize( get_field( 'value_117', $product->get_id() ) ) .  "**LT**/Value**GT****LT**/Option**GT**";

$order_details .= "**LT**Option**GT****LT**ID**GT**" . "2056" . "**LT**/ID**GT****LT**Value**GT**" . maybe_serialize( get_field( 'value_118', $product->get_id() ) ) . "**LT**/Value**GT****LT**/Option**GT**";

$order_details .= "**LT**/Options**GT**";

$order_details .= "**LT**/item**GT**";

}

return $order_details;
}
Пока этот код работает хорошо, и все соответствующие заказы и все соответствующие продукты фильтруются. Единственная проблема, с которой я столкнулся, заключается в том, что экспортируется только информация поля ACF для простых продуктов. Для продуктов с переменными параметрами все поля ACF остаются пустыми.
Изображение

Как наконец-то передать переменные товары + варианты заказанных товаров через xml – аналог «простых товаров»?
Как мне это сделать? мне нужно изменить мой PHP-код и/или настройки ACF?

Подробнее здесь: https://stackoverflow.com/questions/790 ... oocommerce
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»