/** * Sync a WC Product's Image to Square * * @param WC_Product $wc_product WC Product to sync Item Image for. * @param object $square_item Optional. Corresponding Square Item object for $wc_product. * * @return bool Success. */ public function sync_product_image(WC_Product $wc_product, $square_item = null) { if (is_null($square_item)) { $square_item = $this->get_square_item_for_wc_product($wc_product); } if (!$square_item) { WC_Square_Sync_Logger::log(sprintf('[WC -> Square] Image Sync: No Square Item found for WC Product %d.', $wc_product->id)); return false; } if (!has_post_thumbnail($wc_product->id)) { WC_Square_Sync_Logger::log(sprintf('[WC -> Square] Image Sync: Skipping WC Product %d (no post thumbnail set).', $wc_product->id)); return true; } if (empty($square_item->master_image->id)) { $result = $this->update_product_image($wc_product, $square_item->id); } else { $wc_product_square_image_id = WC_Square_Utils::get_wc_product_image_square_id($wc_product->id); if ($wc_product_square_image_id === $square_item->master_image->id) { WC_Square_Sync_Logger::log(sprintf('[WC -> Square] Image Sync: Skipping WC Product %d (Square Image ID matches current).', $wc_product->id)); $result = true; } else { $result = $this->update_product_image($wc_product, $square_item->id); } } return $result; }