/**
  * 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;
 }