! $order->is_download_permitted() ) { continue; } $product_id = intval( $result->product_id ); if ( ! $_product || $_product->get_id() !== $product_id ) { // New product. $file_number = 0; $_product = wc_get_product( $product_id ); } // Check product exists and has the file. if ( ! $_product || ! $_product->exists() || ! $_product->has_file( $result->download_id ) ) { continue; } $download_file = $_product->get_file( $result->download_id ); // Download name will be 'Product Name' for products with a single downloadable file, and 'Product Name - File X' for products with multiple files. $download_name = apply_filters( 'woocommerce_downloadable_product_name', $download_file['name'], $_product, $result->download_id, $file_number ); $downloads[] = array( 'download_url' => add_query_arg( array( 'download_file' => $product_id, 'order' => $result->order_key, 'email' => rawurlencode( $result->user_email ), 'key' => $result->download_id, ), home_url( '/' ) ), 'download_id' => $result->download_id, 'product_id' => $_product->get_id(), 'product_name' => $_product->get_name(), 'product_url' => $_product->is_visible() ? $_product->get_permalink() : '', // Since 3.3.0. 'download_name' => $download_name, 'order_id' => $order->get_id(), 'order_key' => $order->get_order_key(), 'downloads_remaining' => $result->downloads_remaining, 'access_expires' => $result->access_expires, 'file' => array( 'name' => $download_file->get_name(), 'file' => $download_file->get_file(), ), ); $file_number++; } } return apply_filters( 'woocommerce_customer_available_downloads', $downloads, $customer_id ); } /** * Get total spent by customer. * * @param int $user_id User ID. * @return string */ function wc_get_customer_total_spent( $user_id ) { $customer = new WC_Customer( $user_id ); return $customer->get_total_spent(); } /** * Get total orders by customer. * * @param int $user_id User ID. * @return int */ function wc_get_customer_order_count( $user_id ) { $customer = new WC_Customer( $user_id ); return $customer->get_order_count(); } /** * Reset _customer_user on orders when a user is deleted. * * @param int $user_id User ID. */ function wc_reset_order_customer_id_on_deleted_user( $user_id ) { global $wpdb; $wpdb->update( $wpdb->postmeta, array( 'meta_value' => 0 ), array( 'meta_key' => '_customer_user', 'meta_value' => $user_id, ) ); // WPCS: slow query ok. } add_action( 'deleted_user', 'wc_reset_order_customer_id_on_deleted_user' ); /** * Get review verification status. * * @param int $comment_id Comment ID. * @return bool */ function wc_review_is_from_verified_owner( $comment_id ) { $verified = get_comment_meta( $comment_id, 'verified', true ); return '' === $verified ? WC_Comments::add_comment_purchase_verification( $comment_id ) : (bool) $verified; } /** * Disable author archives for customers. * * @since 2.5.0 */ function wc_disable_author_archives_for_customers() { global $author; if ( is_author() ) { $user = get_user_by( 'id', $author ); if ( user_can( $user, 'customer' ) && ! user_can( $user, 'edit_posts' ) ) { wp_redirect( wc_get_page_permalink( 'shop' ) ); } } } add_action( 'template_redirect', 'wc_disable_author_archives_for_customers' ); /** * Hooks into the `profile_update` hook to set the user last updated timestamp. * * @since 2.6.0 * @param int $user_id The user that was updated. * @param array $old The profile fields pre-change. */ function wc_update_profile_last_update_time( $user_id, $old ) { wc_set_user_last_update_time( $user_id ); } add_action( 'profile_update', 'wc_update_profile_last_update_time', 10, 2 ); /** * Hooks into the update user meta function to set the user last updated timestamp. * * @since 2.6.0 * @param int $meta_id ID of the meta object that was changed. * @param int $user_id The user that was updated. * @param string $meta_key Name of the meta key that was changed. * @param string $_meta_value Value of the meta that was changed. */ function wc_meta_update_last_update_time( $meta_id, $user_id, $meta_key, $_meta_value ) { $keys_to_track = apply_filters( 'woocommerce_user_last_update_fields', array( 'first_name', 'last_name' ) ); $update_time = in_array( $meta_key, $keys_to_track, true ) ? true : false; $update_time = 'billing_' === substr( $meta_key, 0, 8 ) ? true : $update_time; $update_time = 'shipping_' === substr( $meta_key, 0, 9 ) ? true : $update_time; if ( $update_time ) { wc_set_user_last_update_time( $user_id ); } } add_action( 'update_user_meta', 'wc_meta_update_last_update_time', 10, 4 ); /** * Sets a user's "last update" time to the current timestamp. * * @since 2.6.0 * @param int $user_id The user to set a timestamp for. */ function wc_set_user_last_update_time( $user_id ) { update_user_meta( $user_id, 'last_update', gmdate( 'U' ) ); } /** * Get customer saved payment methods list. * * @since 2.6.0 * @param int $customer_id Customer ID. * @return array */ function wc_get_customer_saved_methods_list( $customer_id ) { return apply_filters( 'woocommerce_saved_payment_methods_list', array(), $customer_id ); } /** * Get info about customer's last order. * * @since 2.6.0 * @param int $customer_id Customer ID. * @return WC_Order|bool Order object if successful or false. */ function wc_get_customer_last_order( $customer_id ) { $customer = new WC_Customer( $customer_id ); return $customer->get_last_order(); } /** * Add support for searching by display_name. * * @since 3.2.0 * @param array $search_columns Column names. * @return array */ function wc_user_search_columns( $search_columns ) { $search_columns[] = 'display_name'; return $search_columns; } add_filter( 'user_search_columns', 'wc_user_search_columns' ); /** * When a user is deleted in WordPress, delete corresponding WooCommerce data. * * @param int $user_id User ID being deleted. */ function wc_delete_user_data( $user_id ) { global $wpdb; // Clean up sessions. $wpdb->delete( $wpdb->prefix . 'woocommerce_sessions', array( 'session_key' => $user_id, ) ); // Revoke API keys. $wpdb->delete( $wpdb->prefix . 'woocommerce_api_keys', array( 'user_id' => $user_id, ) ); // Clean up payment tokens. $payment_tokens = WC_Payment_Tokens::get_customer_tokens( $user_id ); foreach ( $payment_tokens as $payment_token ) { $payment_token->delete(); } } add_action( 'delete_user', 'wc_delete_user_data' ); /** * Store user agents. Used for tracker. * * @since 3.0.0 * @param string $user_login User login. * @param int|object $user User. */ function wc_maybe_store_user_agent( $user_login, $user ) { if ( 'yes' === get_option( 'woocommerce_allow_tracking', 'no' ) && user_can( $user, 'manage_woocommerce' ) ) { $admin_user_agents = array_filter( (array) get_option( 'woocommerce_tracker_ua', array() ) ); $admin_user_agents[] = wc_get_user_agent(); update_option( 'woocommerce_tracker_ua', array_unique( $admin_user_agents ) ); } } add_action( 'wp_login', 'wc_maybe_store_user_agent', 10, 2 ); /** * Update logic triggered on login. * * @since 3.4.0 * @param string $user_login User login. * @param object $user User. */ function wc_user_logged_in( $user_login, $user ) { wc_update_user_last_active( $user->ID ); update_user_meta( $user->ID, '_woocommerce_load_saved_cart_after_login', 1 ); } add_action( 'wp_login', 'wc_user_logged_in', 10, 2 ); /** * Update when the user was last active. * * @since 3.4.0 */ function wc_current_user_is_active() { if ( ! is_user_logged_in() ) { return; } wc_update_user_last_active( get_current_user_id() ); } add_action( 'wp', 'wc_current_user_is_active', 10 ); /** * Set the user last active timestamp to now. * * @since 3.4.0 * @param int $user_id User ID to mark active. */ function wc_update_user_last_active( $user_id ) { if ( ! $user_id ) { return; } update_user_meta( $user_id, 'wc_last_active', (string) strtotime( date( 'Y-m-d', current_time( 'timestamp', true ) ) ) ); } Program – iBody
Background
CLEAN TRANSFORMATION

How the Program Works

The Three Basic Principles of Weight Loss

  • Eliminate

    Eliminate Toxins and Restore Healthy Elimination

    We are continually exposed to external toxins: pesticides, chemicals, and pollutants that we ingest, breathe, and come across daily. Although our bodies are designed to naturally dispose of these toxins, our organs (especially the liver) can get overburdened. The presence of hundreds of different toxins in our bodies causes unhealthy symptoms like chronic headaches, fatigue, and weight gain.

    Toxic symptoms can cause breakdown in our bodily functions, which can ultimately lead to disease. The iBody program is designed to offer organ support and maximize the elimination functions necessary to minimize weight and expel these harmful toxins from the body.

  • Nourish

    Nourish the Body and Replenish Deficiencies

    With the prevalence of convenience foods to keep up with our busy lives, we succumb daily to packaged, processed foods high in sugars and preservatives and deprive our bodies of vital nutrients. During the program you will be eating whole foods and nourishing your body back to health, replenishing nutritional deficiencies that today’s foods lack. The process will allow the body to rebuild and restore healthy function with proper nutrition.

  • Reset

    Reset and Reduce Dependence

    The changes that the body goes through during the detoxification program reset your system. Your body will no longer depend on caffeine and sugar for energy. Your brain resets to break old bad habits and create new good ones. Upon completion of the program you will experience a state of health you may have never felt before. With a newfound sense of well-being your body will be functioning at a much higher plane of health.

Background

WHAT CAN I EAT?

Days 1-10 is a vegan diet. That means mostly fruits and vegetables; no animal protein. This allows your liver to rest and focus on detoxification. On day 11, you may add certain animal proteins back in.

iBody-fruit-bowl2
Fruits

All fruits allowed, but eat twice as many vegetables as fruits; Avoid canned or dried fruit, high-sugar or artificial berry juices, oranges/grapefruits (if allergic)

Drinks

Purified water, 100% vegetable juices, organic herbal tea, green tea; Avoid caffeine, coffee, black tea, alcohol, high-sugar fruit juice

Dairy

None. Use a non-dairy milk substitute like unsweetened coconut, rice, or hemp seed milk; Avoid all dairy products like milk, cream, and yogurt

iBody-veggie-bowl
Vegetables

Unlimited amounts of fresh vegetables. Limit starchy vegetables (yams, potatoes) to ½ serving per day; Avoid corn, canned vegetables, soybean and soy-based foods

Grains and Similar

Limit to 1 cup combined total per day: lentils, beans (garbanzo, fava, black, mung, black-eyed), rice (brown, wild, black or red), quinoa, amaranth, millet; Avoid refined flour, and grains with gluten—wheat, rye, spelt, kamut, barley

Fats

Extra-virgin olive oil, coconut oil, grapeseed oil; Avoid cooking sprays, hydrogenated oils, mayonnaise

iBody-salmon-bowl
Animal Protein (starting day 11)

Fish (wild-caught, not farm raised), chicken (organic, range free, hormone free, antibiotic free), red meat, and game allowed 1-2 times per week after day 11; Avoid non-organic meats and pork

Nuts and Seeds

Half cup raw almonds (starting day 11), sesame seeds; Avoid other nuts/seeds, especially peanuts and soy nuts

Spices and Sauces

Fresh herbs and spices; Avoid artificial seasonings, soy sauce, BBQ sauce, ketchup

Background

Program Guidelines

  • Detox

    The Detox

    Upon completion of this program, you will experience a state of health you may never have felt, or at least experienced since your youth. The first 3–4 days are the hardest since you will likely be craving all the old foods. Don’t give in! Take this time to exercise extreme “self control.” After the fifth day, you will find your old cravings diminishing, replaced by a newfound sense of well-being. Generally by days 7–10, you are functioning at a higher plane, and your body and mind are clearing.

  • Cleanse

    The Cleanse

    You may react negatively to foods you used to eat since your body is now shifting into higher levels of functioning and elimination. Take time reintroducing foods to your diet to determine which ones do not agree with your body. It is prudent not to return to junk food. If you do, your body will slowly adapt by storing toxins again and shifting into a fat-storing state. While you may not feel the immediate effects of the junk food, it will eventually damage your long-term health.

  • Reset

    The Reset Button

    Use these 21 days as a time of renewal; allow your body to learn and regenerate. Take time for introspection, creative outlets, and do some special things for yourself, such as luxurious baths (with special salts) or a massage.