Category Archives: Magento 2.0 Tutorial

Magento 2 Login Customer Programmatically


Magento 2 Login Customer Programmatically– There are many ways to login customer programmatically in Magento2. It is very easy to set customer as logged in Magento2. Here in this tutorial we are going to explain how you can log in any customer as logged in.


Magento 2 Login Customer Programmatically By Email Id | Magento2 Example

Here in this article we are going to login on Frontend as an user without password using customer email Id. You can load customer by Email Id and login as below –

Magento 2 Login Customer Programmatically Without Password Example:

$objectManager = \Magento\Framework\App\ObjectManager::getInstance();
// Load customer By Email
$customer = $objectManager->create('Magento\Customer\Model\Customer')->loadByEmail('xyz@example.com');

// Create customer session
$customerSession = $objectManager->create('Magento\Customer\Model\Session');
$customerSession->setCustomerAsLoggedIn($customer);

if($customerSession->isLoggedIn()) {
    echo "Customer Logged in Successfully";
}else{
    echo "Unable to Login";
}

So you can use this method to login anywhere any customer.

Magento 2 Get Product Attribute


Magento 2 Get Product Attribute Value By Code It is very simple to get the product’s custom attribute value by attribute code. You also get easily get the attribute options detail. Here in this tutorial we are going to explain how to get the product’s custom attribute in Magento2.


Magento 2 Get Product Attribute | Custom Attribute | Options Example

Let us go one by one to get the product attribute Details-

Get Product Attribute Value By Code

You can get the product custom attribute value by code simply as below-

Magento 2 Get Product Custom Attribute Example:

$productId = 654;
$objectManager = \Magento\Framework\App\ObjectManager::getInstance();
   $product = $objectManager->create('Magento\Catalog\Model\Product')->load($productId);
   $myCustomAttrVal = $product->getData('my_custom_attribute');

The above Example will give you custom atribute value by code.

Get Product Attribute Options Value

Get Product Custom Attribute Options Value In Magento2 Example:

$objectManager = \Magento\Framework\App\ObjectManager::getInstance();
$eavConfig = $objectManager->get('\Magento\Eav\Model\Config');
$attribute = $eavConfig->getAttribute('catalog_product', 'color');
$options = $attribute->getSource()->getAllOptions();

$optionsExists = array();

foreach($options as $option) {
    $optionsExists[] = $option['label'];
}
print_r($optionsExists);

The above example will give you all options available for attribute.

Get Product Attribute Labels

Get Product Custom Attribute Options Label In Magento2 Example:

$productId = 100;
$objectManager = \Magento\Framework\App\ObjectManager::getInstance();
$product = $objectManager->get('Magento\Catalog\Model\Product')->load($productId);
$product = $this->objectFactory->get('Magento\Catalog\Model\Product')->load($product_id);

$attributes = $product->getAttributes();
$lables = array();
foreach ($attributes as $attribute) {

$lables[]= $attribute->getStoreLabel();

}
print_r($labels);

The above example will give you options label from product object.

Magento 2 get product category id


Magento 2 get product category id – There can be more than one category of any product so we need to get all categories by product id. It is very simple to get product category id, you can use object manager to get product category details.


Magento 2 get product category id by Product Id | Magento2 Example

Here is an example to get the product categories by product id using object manager-

Product category details

You can get product categories details simply as below-

Magento 2 get product category id Example:

$productId = 100;
$objectManager = \Magento\Framework\App\ObjectManager::getInstance();
$product = $objectManager->get('Magento\Catalog\Model\Product')->load($productId);
$categories = $product->getCategoryIds(); /*This will return category ids array so let us loop them*/
foreach($categories as $category){
    $cat = $objectManager->create('Magento\Catalog\Model\Category')->load($category);
    echo $cat->getName();
    echo "
"; echo $cat->getId(); }

The above example will return category ids array. Using Magento\Catalog\Model\Category we can get category details such as name, id etc.

Current Product Category Details

If you want to get the current Product Category Details, You can load product from registry and get details simply as below-

Magento 2 get product category id Example:

$objectManager = \Magento\Framework\App\ObjectManager::getInstance();
$product = $objectManager->get('Magento\Framework\Registry')->registry('current_product');
$categories = $product->getCategoryIds(); /*will return category ids array*/
foreach($categories as $category){
    $cat = $objectManager->create('Magento\Catalog\Model\Category')->load($category);
    echo $cat->getName();
    }

Magento 2 Check admin user logged or not


Magento 2 Check admin user logged or not– Sometimes we need to check the admin user login status ie. whether the admin user is logged in or not. Here in this article, we are going to explain how to check admin user login status.


Magento 2 Check admin user logged or not | Magento2 Example

You can use admin auth session to determine the admin user login status. Here is an example to check the admin login status –

Magento 2 Check admin user logged or not Example:

$objectManager = \Magento\Framework\App\ObjectManager::getInstance();
$adminSession = $objectManager->get('Magento\Backend\Model\Auth\Session');
if($adminSession->isLoggedIn()) {
   // Admin is logged do your stuffs here
}

We have used Magento\Backend\Model\Auth\Session to check the admin login staus. You can use object manager as above to check whether the admin user is login or not.

Magento 2 Check customer is logged in


Magento 2 Check customer is logged in– While working on front end we often need to check whether the customer is logged in or not. Here in this tutorial, we are going to explain how to check customer is logged in or not in Magento 2.


Magento 2 Check customer is logged in Example

You can get customer login status using the following method –

Magento 2 Check customer is login Example:

$objectManager = \Magento\Framework\App\ObjectManager::getInstance();
$customerSession = $objectManager->get('Magento\Customer\Model\Session');
if($customerSession->isLoggedIn()) {
   // customer login do your stuffs here
}

In the above example we have used object manager to get the current customer session. Using the current customer session object we can get the Login status as above.

Magento 2 Get Order Details


Magento 2 Get Order Details Programmatically– It is very common while working with orders in Magento 2 we need to deal with the associated details about the order. Here in this article we are going to explain how you can get the important details such as- Load Order by Id(Increment Id), get Order Status, Get order Shipping Address, Billing Address, Shipping And Payment Method Details.


Magento 2 Get Order Details Programmatically | Payment Method | Shipping | Example

Magento 2 Get Order Details

Let us go step by step to understand the Order Details in Magento 2-

  • 1. Load Order By Id
  • 2. Load Order By Increment Id

First of all let us load order object

Load Order By Id

You can load order by order id using object manager simply as below-

Load Order By Order Id Example:

$orderId = 9999;
$objectManager = \Magento\Framework\App\ObjectManager::getInstance();
$order = $objectManager->create('\Magento\Sales\Model\Order')                           ->load($orderId);
echo $order->getGrandTotal();

Load Order By Increment Id

Now let us load order by increment id in Magento 2-

Load Order By Increment Id Example:

$$orderIncrementId = 109834772;
$objectManager = \Magento\Framework\App\ObjectManager::getInstance();
$order = $objectManager->create('\Magento\Sales\Model\Order')                           ->loadByIncrementId($orderIncrementId);
echo $order->getGrandTotal();

Get Order Status & State In Magento 2

You can get order status & state from Order Id simply as below-

Get Order Status & Label From Order Id Example:

$orderId = 9999;
$objectManager = \Magento\Framework\App\ObjectManager::getInstance();
$order = $objectManager->create('\Magento\Sales\Model\Order')                           ->load($orderId);
echo $state = $order->getState(); 
echo "
"; echo $orderStatus = $order->getStatusLabel();

Get Order Items Collection

Now let us get order items collection All Visible Items, All Items from order object-

Get Order items | All Items | All Visible Example:

$orderId = 9999;
$objectManager = \Magento\Framework\App\ObjectManager::getInstance();
$order = $objectManager->create('\Magento\Sales\Model\Order')                           ->load($orderId);
$orderItemsCollection = $order->getAllVisibleItems();
//*** get All Items ******//
//$orderItemsCollection = $order->getAllItems();
 foreach $orderItemsCollection as $item){ 
    $productId = $item->Id();
    $productSku = $item->sku();
    $productName = $item->getName();
 }

Get Shipping & Billing Address From Order

You can get the shipping & Billing Address Details form order using order id simply as below-

Shipping & Billing Info From Order Example:

$orderId = 9999;
$objectManager = \Magento\Framework\App\ObjectManager::getInstance();
$order = $objectManager->create('\Magento\Sales\Model\Order')                           ->load($orderId);

 $shippingAddress = $order->getShippingAddress();
 $billingAddress = $order->getBillingAddress();
 echo $shippingAddress->getStreet();
 echo $shippingAddress->getTelephone();

Get Shipping Method

You can get the shipping Method form order using order id simply as below-

Shipping Method Info from Order Example:

$orderId = 9999;
$objectManager = \Magento\Framework\App\ObjectManager::getInstance();
$order = $objectManager->create('\Magento\Sales\Model\Order')                           ->load($orderId);
$shippingMethod = $order->getShippingMethod();

Get Payment Method

You can get the Payment Method form order using order id simply as below-

Payment Method Info from Order Example:

$orderId = 9999;
$objectManager = \Magento\Framework\App\ObjectManager::getInstance();
$order = $objectManager->create('\Magento\Sales\Model\Order')                           ->load($orderId);
$paymentMethod = $order->getPaymentMethod();

Get Quote From Order

You can get the quote From Order using quote Id.

Payment Method Info from Order Example:

$orderId = 9999;
$objectManager = \Magento\Framework\App\ObjectManager::getInstance();
$order = $objectManager->create('\Magento\Sales\Model\Order')                           ->load($orderId);
$quoteId = $order->getQuoteId();
$quoteFactory = $objectManager->create('\Magento\Quote\Model\QuoteFactory');
$quote = $quoteFactory->create()->load($quoteId);
echo $quote->getSubTotal();

Get Shipment Collection From Order

You can get shipment collection from order object simply as below-

Get Shipment Id By Order Id Example:

$orderId = 9999;
$objectManager = \Magento\Framework\App\ObjectManager::getInstance();
$order = $objectManager->create('\Magento\Sales\Model\Order')                           ->load($orderId);
$shipmentCollection = $order->getShipmentsCollection();
print_r($shipmentCollection->getData());
// or 

foreach($shipmentCollection as $shipment){

 $shipmentID = $shipment->getId();
 $shipmentIncrementID = $shipment->getIncrementId();
}

There can be multiple shipments against an order so you can get shipment id, shipment increment id and other details as in above example.

Magento 2 event observer list

magento 2 event observer list Cheat Sheet Here is complete list of events(observers) available in Magento 2. You use it magento 2 quickley from below list.

Magento 2 event observer list Cheat Sheet

Complete list of magento 2 events, You can call any event from the list easily-

  • checkout_directpost_placeOrder
  • adminhtml_store_edit_form_prepare_form
  • adminhtml_block_html_before
  • backend_block_widget_grid_prepare_grid_before
  • adminhtml_cache_flush_system
  • adminhtml_cache_flush_all
  • clean_catalog_images_cache_after
  • clean_media_cache_after
  • clean_static_files_cache_after
  • adminhtml_cache_flush_all
  • adminhtml_cache_flush_system
  • theme_save_after
  • store_delete
  • store_group_save
  • NO_MATCH
  • backend_auth_user_login_success
  • backend_auth_user_login_failed
  • backend_auth_user_login_failed
  • catalog_product_option_price_configuration_after
  • prepare_catalog_product_collection_prices
  • catalog_product_get_final_price
  • catalog_product_get_final_price
  • catalog_product_prepare_index_select
  • catalog_product_get_final_price
  • adminhtml_catalog_category_edit_prepare_form
  • adminhtml_catalog_category_tabs
  • adminhtml_catalog_category_tree_is_moveable
  • adminhtml_catalog_category_tree_can_add_root_category
  • adminhtml_catalog_category_tree_can_add_sub_category
  • product_attribute_form_build
  • product_attribute_form_build_front_tab
  • adminhtml_catalog_product_attribute_edit_frontend_prepare_form
  • adminhtml_product_attribute_types
  • product_attribute_form_build_main_tab
  • product_attribute_grid_build
  • adminhtml_catalog_product_edit_prepare_form
  • adminhtml_catalog_product_edit_element_types
  • adminhtml_catalog_product_attribute_set_main_html_before
  • adminhtml_catalog_product_attribute_set_toolbar_main_html_before
  • adminhtml_catalog_product_form_prepare_excluded_field_list
  • adminhtml_catalog_product_edit_tab_attributes_create_html_before
  • adminhtml_catalog_product_edit_prepare_form
  • adminhtml_catalog_product_edit_element_types
  • adminhtml_catalog_product_grid_prepare_massaction
  • catalog_product_gallery_prepare_layout
  • catalog_block_product_status_display
  • catalog_block_product_list_collection
  • catalog_product_upsell
  • catalog_product_option_price_configuration_after
  • catalog_product_view_config
  • rss_catalog_category_xml_callback
  • rss_catalog_new_xml_callback
  • rss_catalog_special_xml_callback
  • shortcut_buttons_container
  • catalog_controller_category_delete
  • category_prepare_ajax_response
  • catalog_category_prepare_save
  • catalog_product_to_website_change
  • catalog_product_edit_action
  • catalog_product_gallery_upload_image_after
  • catalog_product_new_action
  • controller_action_catalog_product_save_entity_after
  • catalog_controller_category_init_after
  • catalog_product_compare_add_product
  • catalog_product_compare_remove_product
  • catalog_controller_product_view
  • catalog_controller_product_init_before
  • catalog_controller_product_init_after
  • _move_before
  • _move_after
  • category_move
  • catalog_product_attribute_update_before
  • adminhtml_product_attribute_types
  • NO_MATCH
  • catalog_product_get_final_price
  • _validate_before
  • _validate_after
  • catalog_product_is_salable_before
  • catalog_product_is_salable_after
  • _load_before
  • _load_after
  • _add_is_active_filter
  • _load_before
  • _load_after
  • _add_is_active_filter
  • catalog_category_tree_init_inactive_category_ids
  • catalog_category_flat_loadnodes_before
  • catalog_category_tree_init_inactive_category_ids
  • catalog_category_change_products
  • catalog_prepare_price_select
  • catalog_product_collection_load_after
  • catalog_product_collection_before_add_count_to_categories
  • catalog_product_collection_apply_limitations_after
  • catalog_product_compare_item_collection_clear
  • prepare_catalog_product_index_select
  • prepare_catalog_product_index_select
  • prepare_catalog_product_index_select
  • prepare_catalog_product_index_select
  • prepare_catalog_product_index_select
  • catalog_product_delete_after_done
  • rss_catalog_notify_stock_collection_select
  • clean_cache_by_tags
  • catalog_product_import_bunch_delete_after
  • catalog_product_import_finish_before
  • catalog_product_import_bunch_save_after
  • clean_cache_by_tags
  • adminhtml_promo_catalog_edit_tab_main_prepare_form
  • adminhtml_controller_catalogrule_prepare_save
  • clean_cache_by_tags
  • catelogsearch_searchable_attributes_load_after
  • catelogsearch_searchable_attributes_load_after
  • catalogsearch_reset_search_result
  • shortcut_buttons_container
  • checkout_cart_add_product_complete
  • checkout_cart_update_item_complete
  • checkout_controller_onepage_saveOrder
  • checkout_onepage_controller_success_action
  • checkout_allow_guest
  • checkout_cart_product_add_after
  • checkout_cart_update_items_before
  • checkout_cart_update_items_after
  • checkout_cart_save_before
  • checkout_cart_save_after
  • checkout_cart_product_update_after
  • custom_quote_process
  • checkout_quote_init
  • load_customer_quote_before
  • checkout_quote_destroy
  • restore_quote
  • checkout_type_onepage_save_order_after
  • checkout_submit_all_after
  • adminhtml_cms_page_edit_tab_content_prepare_form
  • adminhtml_cms_page_edit_tab_design_prepare_form
  • adminhtml_cms_page_edit_tab_main_prepare_form
  • adminhtml_cms_page_edit_tab_meta_prepare_form
  • adminhtml_cmspage_on_delete
  • adminhtml_cmspage_on_delete
  • cms_page_prepare_save
  • cms_controller_router_match_before
  • cms_page_render
  • cms_wysiwyg_images_static_urls_allowed
  • adminhtml_system_config_advanced_disableoutput_render_before
  • NO_MATCH
  • catalog_product_validate_variations_before
  • controller_action_nocookies
  • admin_system_config_changed_section_currency_before_reinit
  • admin_system_config_changed_section_currency
  • adminhtml_block_html_before
  • customer_register_success
  • adminhtml_customer_prepare_save
  • adminhtml_customer_save_after
  • customer_customer_authenticated
  • customer_data_object_login
  • customer_address_format
  • customer_customer_authenticated
  • customer_validate
  • customer_save_after_data_object
  • customer_session_init
  • customer_login
  • customer_data_object_login
  • customer_login
  • customer_data_object_login
  • customer_logout
  • visitor_init
  • visitor_activity_save
  • adminhtml_block_eav_attribute_edit_form_init
  • eav_collection_abstract_load_before
  • gift_options_prepare_items
  • catalog_product_prepare_index_select
  • clean_cache_after_reindex
  • checkout_controller_multishipping_shipping_post
  • multishipping_checkout_controller_success_action
  • checkout_type_multishipping_set_shipping_items
  • checkout_type_multishipping_create_orders_single
  • checkout_submit_all_after
  • checkout_multishipping_refund_all
  • adminhtml_cache_refresh_type
  • depersonalize_clear_session
  • payment_form_block_to_html_before
  • payment_cart_collect_items_and_amounts
  • payment_method_is_active
  • payment_method_is_active
  • payment_method_assign_data_
  • paypal_express_place_order_success
  • persistent_session_expired
  • persistent_session_expired
  • items_additional_data
  • sales_convert_quote_to_order
  • sales_quote_item_qty_set_after
  • sales_quote_item_set_product
  • _import_data_before
  • sales_quote_collect_totals_before
  • sales_quote_collect_totals_after
  • sales_quote_address_collect_totals_before
  • sales_quote_address_collect_totals_after
  • sales_quote_remove_item
  • sales_quote_add_item
  • sales_quote_product_add_after
  • _merge_before
  • _merge_after
  • checkout_submit_before
  • checkout_submit_all_after
  • sales_model_service_quote_submit_before
  • sales_model_service_quote_submit_success
  • sales_model_service_quote_submit_failure
  • _load_after
  • prepare_catalog_product_collection_prices
  • sales_quote_item_collection_products_after_load
  • adminhtml_widget_grid_filter_collection
  • sales_prepare_amount_expression
  • review_controller_product_init_before
  • review_controller_product_init
  • review_controller_product_init_after
  • rating_rating_collection_load_before
  • review_review_collection_load_before
  • rss_catalog_review_collection_select
  • adminhtml_customer_orders_add_action_renderer
  • admin_sales_order_address_update
  • adminhtml_sales_order_create_process_data_before
  • adminhtml_sales_order_create_process_data
  • adminhtml_sales_order_creditmemo_register_before
  • sales_convert_order_to_quote
  • sales_convert_order_item_to_quote_item
  • checkout_submit_all_after
  • sales_email_general_async_sending
  • dev_grid_async_indexing
  • customer_address_format
  • email_creditmemo_comment_set_template_vars_before
  • email_creditmemo_set_template_vars_before
  • email_invoice_comment_set_template_vars_before
  • email_invoice_set_template_vars_before
  • email_order_comment_set_template_vars_before
  • email_order_set_template_vars_before
  • email_shipment_comment_set_template_vars_before
  • email_shipment_set_template_vars_before
  • sales_order_invoice_pay
  • sales_order_invoice_cancel
  • sales_order_invoice_register
  • sales_order_item_cancel
  • sales_order_payment_capture
  • _html_txn_id
  • sales_order_payment_place_start
  • sales_order_payment_place_end
  • sales_order_payment_pay
  • sales_order_payment_cancel_invoice
  • sales_order_payment_void
  • sales_order_payment_refund
  • sales_order_payment_cancel_creditmemo
  • sales_order_payment_cancel
  • sales_order_status_unassign
  • sales_order_place_before
  • sales_order_place_after
  • order_cancel_after
  • _save_attribute_before
  • _save_attribute_after
  • _load_after
  • _set_sales_order
  • sales_sale_collection_query_before
  • rss_order_new_collection_select
  • sales_order_creditmemo_cancel
  • sales_order_creditmemo_refund
  • sales_order_state_change_before
  • adminhtml_block_salesrule_actions_prepareform
  • adminhtml_promo_quote_edit_tab_coupons_form_prepare_form
  • adminhtml_promo_quote_edit_tab_main_prepare_form
  • adminhtml_block_promo_widget_chooser_prepare_collection
  • adminhtml_controller_salesrule_prepare_save
  • sales_quote_address_discount_item
  • sales_quote_address_discount_item
  • salesrule_rule_condition_combine
  • salesrule_rule_get_coupon_types
  • salesrule_validator_process
  • on_view_report
  • sendfriend_product
  • store_address_format
  • swatch_gallery_upload_image_after
  • adminhtml_cache_refresh_type
  • tax_settings_change_after
  • tax_settings_change_after
  • tax_settings_change_after
  • tax_settings_change_after
  • tax_settings_change_after
  • tax_rate_data_fetch
  • page_block_html_topmenu_gethtml_before
  • page_block_html_topmenu_gethtml_after
  • assign_theme_to_stores_after
  • assigned_theme_changed
  • theme_registration_from_filesystem
  • permissions_role_html_before
  • admin_permissions_role_prepare_save
  • admin_user_authenticate_before
  • admin_user_authenticate_after
  • product_option_renderer_init
  • wishlist_add_product
  • wishlist_share
  • wishlist_update_item
  • wishlist_items_renewed
  • wishlist_item_collection_products_after_load
  • rss_wishlist_xml_callback
  • wishlist_add_item
  • wishlist_product_add_after
  • controller_action_predispatch
  • controller_action_predispatch_
  • controller_action_predispatch_
  • controller_action_postdispatch_
  • controller_action_postdispatch_
  • controller_action_postdispatch
  • default
  • NO_MATCH
  • NO_MATCH
  • controller_front_send_response_before
  • controller_action_layout_render_before
  • controller_action_layout_render_before_
  • controller_action_noroute
  • abstract_search_result_load_before
  • _load_before
  • abstract_search_result_load_after
  • _load_after
  • NO_MATCH
  • NO_MATCH
  • NO_MATCH
  • NO_MATCH
  • NO_MATCH
  • currency_display_options_forming
  • session_abstract_clear_messages
  • session_abstract_add_message
  • model_load_before
  • _load_before
  • model_load_after
  • _load_after
  • model_save_commit_after
  • _save_commit_after
  • model_save_before
  • _save_before
  • model_save_after
  • clean_cache_by_tags
  • _save_after
  • model_delete_before
  • _delete_before
  • model_delete_after
  • clean_cache_by_tags
  • _delete_after
  • model_delete_commit_after
  • _delete_commit_after
  • _clear
  • core_collection_abstract_load_before
  • _load_before
  • core_collection_abstract_load_after
  • _load_after
  • _process_relation
  • view_block_abstract_to_html_before
  • view_message_block_render_grouped_html_after
  • layout_load_before
  • layout_generate_blocks_before
  • layout_generate_blocks_after
  • core_layout_block_create_after
  • core_layout_render_element
  • layout_render_before
  • layout_render_before_

Magento 2 format price currency


Magento 2 format price currency – It is very simple to format price currency in Magento 2. You can use object manager or factory method to format price in currency. Here in this article we are going to explain how you can use format price currency function in magento 2.x.


Magento 2 format price Currency With Symbol Example

Magento 2 format price currency

Here is an example to format price in Any currrency with symbol-

With Currency Symbol

The below example will format price with currency symbol-

Magento 2 format price Currency Example:

$objectManager = \Magento\Framework\App\ObjectManager::getInstance();
    $priceHelper = $objectManager->create('Magento\Framework\Pricing\Helper\Data');
    $price =  99.99;
    $currencyFormattedPrice = $priceHelper->currency($price, true, false);

The above example will format price with currency symbol with two decimal.

WithOut Currency Symbol

If you want to format currency Symbol you can do it as below-

Magento 2 format price Currency Example:

$objectManager = \Magento\Framework\App\ObjectManager::getInstance();
    $priceHelper = $objectManager->create('Magento\Framework\Pricing\Helper\Data');
    $price =  99.99;
    $currencyFormattedPrice = $priceHelper->currency($price, array('display' => Zend_Currency::NO_SYMBOL));

The above example will format currency without symbols.

Magento 2 Get Ip Address


Magento 2 Get Ip Address– Sometimes we need to get the Ip address programatically. Here in this tutorial we are going to explain how you can get current visitors IP.


Magento 2 Get Ip Address | Remote Address Example

You can get the remote ip address using object manager simply as below-

Magento 2 Get Ip Address Example:

        /** @var \Magento\Framework\ObjectManagerInterface */
	$objctManager = \Magento\Framework\App\ObjectManager::getInstance();
	/** @var \Magento\Framework\HTTP\PhpEnvironment\RemoteAddress $a */
	$remote = $objctManager->get('Magento\Framework\HTTP\PhpEnvironment\RemoteAddress');
	echo $remote->getRemoteAddress();

The above example will return the remote IP Address.