<?php

class MC4WP_MailChimp_Subscriber {

    /**
     * @var string Email address for this subscriber.
     */
    public $email_address = '';

    /**
     * @var array The key of this object’s properties is the ID of the interest in question.
     */
    public $interests = array();

    /**
     * @var array An individual merge var and value for a member.
     */
    public $merge_fields = array();

    /**
     * @var string Subscriber’s status.
     */
    public $status = 'pending';

    /**
     * @var string Type of email this member asked to get (‘html’ or ‘text’).
     */
    public $email_type = 'html';

    /**
     * @var string IP address the subscriber signed up from.
     */
    public $ip_signup;

    /**
     * @var string The subscriber's language
     */
    public $language;

    /**
     * @var boolean VIP status for subscriber.
     */
    public $vip;

    /**
     * Retrieves member data as an array, without null values.
     *
     * @return array
     */
    public function to_array() {
        $array = get_object_vars( $this );

        // filter out null values
        $null_values = array_filter( $array, 'is_null' );
        $values = array_diff_key( $array, $null_values );

        return $values;
    }

}