WooCommerce iZettle 1.x Code Reference
  • Namespace
  • Class
  • Tree
  • Deprecated
  • Todo
  • Hook Reference

Namespaces

  • Onlineforce
    • Woocommerce_Izettle

Classes

  • Onlineforce\Woocommerce_Izettle\Woocommerce_Izettle
  • Onlineforce\Woocommerce_Izettle\Woocommerce_Izettle_Activator
  • Onlineforce\Woocommerce_Izettle\Woocommerce_Izettle_Admin
  • Onlineforce\Woocommerce_Izettle\Woocommerce_Izettle_Admin_Actions
  • Onlineforce\Woocommerce_Izettle\Woocommerce_Izettle_Admin_Ajax
  • Onlineforce\Woocommerce_Izettle\Woocommerce_Izettle_Admin_Meta_Boxes
  • Onlineforce\Woocommerce_Izettle\Woocommerce_Izettle_Admin_Notices
  • Onlineforce\Woocommerce_Izettle\Woocommerce_Izettle_Background_Worker
  • Onlineforce\Woocommerce_Izettle\Woocommerce_Izettle_Cron
  • Onlineforce\Woocommerce_Izettle\Woocommerce_Izettle_Deactivator
  • Onlineforce\Woocommerce_Izettle\Woocommerce_Izettle_I18n
  • Onlineforce\Woocommerce_Izettle\Woocommerce_Izettle_Images
  • Onlineforce\Woocommerce_Izettle\Woocommerce_Izettle_Inventory
  • Onlineforce\Woocommerce_Izettle\Woocommerce_Izettle_Loader
  • Onlineforce\Woocommerce_Izettle\Woocommerce_Izettle_Orders
  • Onlineforce\Woocommerce_Izettle\Woocommerce_Izettle_Products
  • Onlineforce\Woocommerce_Izettle\Woocommerce_Izettle_Settings

Functions

  • Onlineforce\Woocommerce_Izettle\run_woocommerce_izettle
 1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 
<?php
/**
 * The class that handles all functionality related to product images.
 *
 * @link       https://www.onlineforce.net
 * @since      1.0.0
 *
 * @package    Woocommerce_Izettle
 * @subpackage Woocommerce_Izettle/includes
 */

namespace Onlineforce\Woocommerce_Izettle;

use \Onlineforce\Izettle_Bindings\Izettle_Request;

/**
 * The class that handles all functionality related to product images.
 *
 * @since      1.0.0
 * @package    Woocommerce_Izettle
 * @subpackage Woocommerce_Izettle/includes
 * @author     Onlineforce Sweden AB <support@onlineforce.net>
 */
class Woocommerce_Izettle_Images {

    public static function upload_image( $image_id ) {

        $response = Izettle_Request::request(
            'POST',
            'https://image.izettle.com/v2/images',
            '/organizations/self/products',
            array(
                'imageFormat' => 'JPEG',
                'imageData' => array_values( self::prepare_image( $image_id ) ),
                'imageUrl' => null,
            )
        );

        if ( isset( $response->body->imageLookupKey ) ) {
            return $response->body->imageLookupKey;
        }

        return false;
    }

    // TODO: Don't recreate file if it exists.
    private static function prepare_image( $image_id ) {
        $image_path = get_attached_file( $image_id );
        $image = wp_get_image_editor( $image_path );

        if ( is_wp_error( $image ) ) {
            return false;
        }

        $image->resize( 250, 250, [ 'center', 'center' ] );
        $image = $image->save()['path'];

        $size = filesize( $image );
        $handle = fopen( $image, 'rb' );
        $data = fread( $handle, $size );
        fclose( $handle );

        $image = unpack( 'C*', $data );
        return $image;
    }

}
WooCommerce iZettle 1.x Code Reference API documentation generated by ApiGen