Обновление метаданных позиции подписки Woocommerce - PullRequest
0 голосов
/ 04 марта 2019

Я пытаюсь обновить все подписки, чтобы включить метаданные для "Частота доставки" и "Сумки на отправку".Частота доставки и количество отправлений являются атрибутами продукта.Я могу передать эти значения метаданных при первоначальном создании заказа, но теперь я хочу вернуться через все активные подписки и добавить эти значения.

function update_subscriptions() {

  $args = array('subscriptions_per_page' => '-1');
  $subscriptions = wcs_get_subscriptions($args);

  foreach ($subscriptions as $subscription):

    $subscription_wc = new WC_Subscription($subscription->get_id());
    $subscription_items = $subscription_wc->get_items();

    foreach($subscription_items as $item):

      $product = $item->get_product();

      // Check to make sure item is a subscription product 
      if( class_exists( 'WC_Subscriptions_Product' ) && WC_Subscriptions_Product::is_subscription( $product ) ) {
        $delivery_frequency = $product->get_attribute('pa_delivery-frequency');
        $bags_per_shipment = $product->get_attribute('pa_bags-per-shipment');
        if (!empty($delivery_frequency)) {
          $item->update_meta_data( 'Delivery Frequency', $delivery_frequency );
        }
        if (!empty($bags_per_shipment)) {
          $item->update_meta_data( 'Bags Per Shipment', $bags_per_shipment );
        }
      }

    endforeach;

  endforeach;

}
...