CoderFunda
  • Home
  • About us
    • Contact Us
    • Disclaimer
    • Privacy Policy
    • About us
  • Home
  • Php
  • HTML
  • CSS
  • JavaScript
    • JavaScript
    • Jquery
    • JqueryUI
    • Stock
  • SQL
  • Vue.Js
  • Python
  • Wordpress
  • C++
    • C++
    • C
  • Laravel
    • Laravel
      • Overview
      • Namespaces
      • Middleware
      • Routing
      • Configuration
      • Application Structure
      • Installation
    • Overview
  • DBMS
    • DBMS
      • PL/SQL
      • SQLite
      • MongoDB
      • Cassandra
      • MySQL
      • Oracle
      • CouchDB
      • Neo4j
      • DB2
      • Quiz
    • Overview
  • Entertainment
    • TV Series Update
    • Movie Review
    • Movie Review
  • More
    • Vue. Js
    • Php Question
    • Php Interview Question
    • Laravel Interview Question
    • SQL Interview Question
    • IAS Interview Question
    • PCS Interview Question
    • Technology
    • Other
Showing posts with label Magento. Show all posts
Showing posts with label Magento. Show all posts

30 March, 2022

Admin Session Lifetime | Adobe Commerce 2.4

 Programing Coderfunda     March 30, 2022     Magento, Magento 2     No comments   

This article shows how you can increase the admin login session lifetime in Magento 2.

Problem

When you are a developer, it is frustrating to login to admin panel every 15 minutes or 30 minutes. It would be easy to set the admin login session lifetime for a longer period of time so that we don’t have to login continuously.

Cause

By default, the Magento admin login session timeouts in every 900 seconds, i.e. 900/60 = 15 minutes. Hence, you are inactive in Magento admin, then you have to re-login after every 15 minutes.

Solution

1) From Admin Panel

You can increase the admin login session lifetime to a higher value by going to:

STORES > Settings > Configuration > ADVANCED > Admin > Security > Admin Session Lifetime (seconds)

You can set the value in seconds.

3600 = 1 hour
86400 = 1 day (24 hours)
31536000 = 1 year

2) From Command Line

Instead of the admin panel, you can also set the admin session lifetime value from the command line.

Show current set value

bin/magento config:show admin/security/session_lifetime

Set your desired value

bin/magento config:set admin/security/session_lifetime 3600

Check database table

> SELECT * FROM core_config_data WHERE path = 'admin/security/session_lifetime';
+-----------+---------+----------+---------------------------------+----------+---------------------+
| config_id | scope   | scope_id | path                            | value    | updated_at          |
+-----------+---------+----------+---------------------------------+----------+---------------------+
|      6367 | default |        0 | admin/security/session_lifetime | 3600.    | 2021-10-07 22:31:47 |
+-----------+---------+----------+---------------------------------+----------+---------------------+

Hope this helps. Thanks.

Read More
  • Share This:  
  •  Facebook
  •  Twitter
  •  Google+
  •  Stumble
  •  Digg

How to fix the 'too many redirects' error in Magento 2

 Programing Coderfunda     March 30, 2022     Magento, Magento 2     No comments   

 This article presents a technique to the redirect loop error while logging in to the Magento admin panel.


Did installation an existing Magento keep.

Went to the Magento admin login web page

Entered admin username and password

Got the ERR_TOO_MANY_REDIRECTS mistakes


The website has a redirect loop
ERR_TOO_MANY_REDIRECTS

Cause

The problem is with the Cookie Domain for the Magento website.

i.e. the Magento configuration setting for web/cookie/cookie_domain

My Magento website domain was magento.test.
But, in the configuration settings, it was set as magento.host.

Solution

We need to update the configuration settings value for path web/cookie/cookie_domain with the correct cookie-domain name.

There are two ways to update the configuration settings values.

1) Update the configuration setting from the command line

Show the config value:

bin/magento config:show web/cookie/cookie_domain

Set the config value:

bin/magento config:set web/cookie/cookie_domain magento.test

2) Update database table rows

This one seems better as we can see the value for different stores/websites.

Check the values in the database table:

> SELECT * FROM core_config_data WHERE path LIKE '%web/cookie/cookie_domain%';
+-----------+---------+----------+--------------------------+------------------+---------------------+
| config_id | scope   | scope_id | path                     | value            | updated_at          |
+-----------+---------+----------+--------------------------+------------------+---------------------+
|        18 | default |        0 | web/cookie/cookie_domain | magento.host     | 2020-08-26 15:24:07 |
|      1033 | stores  |        3 | web/cookie/cookie_domain | ca.magento.test  | 2020-06-16 16:57:47 |
+-----------+---------+----------+--------------------------+------------------+---------------------+

Update the config setting value:

> UPDATE core_config_data SET value = 'magento.test' WHERE config_id = 18;

Clear Cache

bin/magento cache:flush

Now, you should be able to login to the Magento admin.

Read More
  • Share This:  
  •  Facebook
  •  Twitter
  •  Google+
  •  Stumble
  •  Digg

Magento 2 Recent Order not showing in Sales Order Grid

 Programing Coderfunda     March 30, 2022     Magento, Magento 2     No comments   

You vicinity an order from frontend and anticipate it to be displayed inside the Sales -> Orders grid in the Magento backend. But, you don’t see your latest order inside the sales order grid.
x






Cause

This is because Magento uses Scheduled Grid Updates. The order related grids (order, invoice, shipment, credit memo) are updated via scheduled cron job. This feature is enabled to avoid locks and reduce processing time.

Solution

1) The best solution would be to run the cron job at regular intervals.

You can also run cron manually from the terminal with the following command:

bin/magento cron:run

2) The other solution (not recommended) is to disable asynchronous indexing of the grid.

You can enable/disable it by going to:

STORES -> Settings -> Configuration -> Advanced > Developer > Grid Settings > Asynchronous indexing

Or, from the command line:

Show value of the setting:

bin/magento config:show dev/grid/async_indexing

Enable Async Grid Indexing:

bin/magento config:set dev/grid/async_indexing 1

Disable Async Grid Indexing:

bin/magento config:set dev/grid/async_indexing 0

Refresh Cache

After the settings change, you have to refresh cache:
– either by going to SYSTEM -> Tools -> Cache Management
– or running the command bin/magento cache:flush.

Finally

Refresh the sales order grid page in Magento admin.

Finally, you should be able to see your recently added order in the sales order grid.

Hope this helps. Thanks.

Read More
  • Share This:  
  •  Facebook
  •  Twitter
  •  Google+
  •  Stumble
  •  Digg

Magento 2 Media Gallery doesn't show any images

 Programing Coderfunda     March 30, 2022     Magento, Magento 2     No comments   

The new/more suitable media gallery changed into introduced with the release of Adobe Commerce and Magento Open Source 2.Four.


Enable New Media Gallery

STORES > Settings > Configuration > ADVANCED > System > Media Gallery

Set
Enable Old Media Gallery = No

This will then enable the new media gallery.

Access New Media gallery

CONTENT > Media Gallery

Problem:

Images of old image gallery not showing in the new media gallery (CONTENT > Media Gallery)

Solution:

The Magento doc says that:

Full functionality for new Media Gallery requires media.gallery.synchronization and media.content.synchronization queue consumers to be started for initial synchronization

1) Run the following media sync commands

Synchronize content with assets

bin/magento media-content:sync

Synchronize media storage and media assets in the database

bin/magento media-gallery:sync

Note: If you have a large number of images, then the media-gallery:sync can take some time to complete.

2) Start the following message queue consumers

bin/magento queue:consumers:start media.content.synchronization
bin/magento queue:consumers:start media.gallery.synchronization

If there is a large gallery item to sync, then it might take some time.

In such a case, you can run the commands in the background by appending “&” at the end of the command.

bin/magento queue:consumers:start media.content.synchronization &
bin/magento queue:consumers:start media.gallery.synchronization &

Bonus:

Some references on managing message queues:

List all consumers

bin/magento queue:consumers:list

Start message queue consumers

bin/magento queue:consumers:start [--max-messages=<value>] [--batch-size=<value>] [--single-thread][--area-code=<value>] <consumer_name>

To run message queue in the background, you can append & at the end:

bin/magento queue:consumers:start <consumer_name> &
Read More
  • Share This:  
  •  Facebook
  •  Twitter
  •  Google+
  •  Stumble
  •  Digg

How to check if customer is logged in or not

 Programing Coderfunda     March 30, 2022     Magento, Magento 2     No comments   

 This article indicates one of a kind ways to test if a consumer is logged in or no longer in Magento 2.

1) Using \Magento\Customer\Model\Session class

  • The main issue with this way is that it will not work when page cache is enabled.
  • When page cache is enabled and you use this code, it will not be able to get the logged-in customer ID or get the boolean value of isLoggedIn.
/**
 * @var Magento\Customer\Model\Session
 */
protected $customerSession;

/**
 * ...
 * @param \Magento\Customer\Model\Session $customerSession
 */
public function __construct(
    ...
    \Magento\Customer\Model\Session $customerSession
) {
    ...
    $this->customerSession = $customerSession;
}

/**
 * @return int
 */
public function getCustomerId()
{
    return $this->customerSession->getCustomer()->getId();
}

/**
 * @return bool
 */
public function isCustomerLoggedIn()
{
    return $this->customerSession->isLoggedIn();
}

2) Using Factory Class Magento\Customer\Model\SessionFactory

  • Using Factory class will solve the issue with page cache.
  • We will be able to run this code even if the page cache is enabled.
/**
 * @var Magento\Customer\Model\SessionFactory
 */
protected $customerSessionFactory;

/**
 * ...
 * @param \Magento\Customer\Model\SessionFactory $customerSession
 */
public function __construct(
    ...
    \Magento\Customer\Model\SessionFactory $customerSessionFactory
) {
    ...
    $this->customerSessionFactory = $customerSessionFactory;
}

/**
 * @return int
 */
public function getCustomerId()
{
    $customerSession = $this->customerSessionFactory->create();
    return $customerSession->getCustomer()->getId();
}

/**
 * @return bool
 */
public function isCustomerLoggedIn()
{
    $customerSession = $this->customerSessionFactory->create();
    return $customerSession->isLoggedIn();
}

3) Using HTTP Context class Magento\Framework\App\Http\Context

  • This is useful if we just need to check if the user is logged in or not.
  • Using HTTP Context will work on both cacheable and non-cacheable pages.
  • We also don’t have to work directly with the customer session.
/**
 * @var Magento\Framework\App\Http\Context
 */
protected $httpContext;

/**
 * ...
 * @param \Magento\Framework\App\Http\Context $httpContext
 */
public function __construct(
    ...
    \Magento\Framework\App\Http\Context $httpContext
) {
    ...
    $this->httpContext = $httpContext;
}

/**
 * @return bool
 */
public function isCustomerLoggedIn()
{
    return (bool)$this->httpContext->getValue(\Magento\Customer\Model\Context::CONTEXT_AUTH);
}
Read More
  • Share This:  
  •  Facebook
  •  Twitter
  •  Google+
  •  Stumble
  •  Digg

Remove Block Programmatically in Magento2

 Programing Coderfunda     March 30, 2022     Magento, Magento 2     No comments   

This article indicates how you may eliminate layout blocks through the PHP Program instead of working within the format.Xml report in Magento 2.


I will be using event observer.


app/code/Company/Module/etc/frontend/events.xml

<?xml version="1.0"?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:Event/etc/events.xsd">
    <event name="layout_generate_blocks_after">
        <observer name="remove_block" instance="Company\Module\Model\Observer\RemoveBlock" />
    </event>
</config>

app/code/Company/Module/Observer/RemoveBlock.php

Here, I am checking if a customer is logged in or not & removing the layout block if the customer is not logged in.

<?php

namespace Company\Module\Model\Observer;

use Magento\Framework\Event\Observer;
use Magento\Framework\Event\ObserverInterface;
use Magento\Framework\App\Http\Context as HttpContext;

class RemoveBlock implements ObserverInterface
{
    /**
     * @var HttpContext
     */
    protected $httpContext;

    public function __construct(
        HttpContext $httpContext
    ) {
        $this->httpContext = $httpContext;
    }

    public function execute(Observer $observer)
    {
        /** @var \Magento\Framework\View\Layout $layout */
        $layout = $observer->getLayout();

        $isCustomerLoggedIn = (bool)$this->httpContext->getValue(\Magento\Customer\Model\Context::CONTEXT_AUTH);
        
        if (!$isCustomerLoggedIn) {
            $blockName = 'your-block-to-remove';
            $block = $layout->getBlock($blockName);
            if ($block) {
                $layout->unsetElement($blockName);
            }
        }
    }
}

Hope this helps. Thanks.

Read More
  • Share This:  
  •  Facebook
  •  Twitter
  •  Google+
  •  Stumble
  •  Digg
Older Posts Home

Meta

Popular Posts

  • Write API Integrations in Laravel and PHP Projects with Saloon
    Write API Integrations in Laravel and PHP Projects with Saloon Saloon  is a Laravel/PHP package that allows you to write your API integratio...
  • Credit card validation in laravel
      Validation rules for credit card using laravel-validation-rules/credit-card package in laravel Install package laravel-validation-rules/cr...
  • Fast Excel Package for Laravel
      Fast Excel is a Laravel package for importing and exporting spreadsheets. It provides an elegant wrapper around Spout —a PHP package to ...
  • iOS 17 Force Screen Rotation not working on iPAD only
    I have followed all the links on Google and StackOverFlow, unfortunately, I could not find any reliable solution Specifically for iPad devic...
  • Features CodeIgniter
    Features CodeIgniter There is a great demand for the CodeIgniter framework in PHP developers because of its features and multiple advan...

Categories

  • Ajax (26)
  • Bootstrap (30)
  • DBMS (42)
  • HTML (12)
  • HTML5 (45)
  • JavaScript (10)
  • Jquery (34)
  • Jquery UI (2)
  • JqueryUI (32)
  • Laravel (1017)
  • Laravel Tutorials (23)
  • Laravel-Question (6)
  • Magento (9)
  • Magento 2 (95)
  • MariaDB (1)
  • MySql Tutorial (2)
  • PHP-Interview-Questions (3)
  • Php Question (13)
  • Python (36)
  • RDBMS (13)
  • SQL Tutorial (79)
  • Vue.js Tutorial (68)
  • Wordpress (150)
  • Wordpress Theme (3)
  • codeigniter (108)
  • oops (4)
  • php (853)

Social Media Links

  • Follow on Twitter
  • Like on Facebook
  • Subscribe on Youtube
  • Follow on Instagram

Pages

  • Home
  • Contact Us
  • Privacy Policy
  • About us

Blog Archive

  • September (100)
  • August (50)
  • July (56)
  • June (46)
  • May (59)
  • April (50)
  • March (60)
  • February (42)
  • January (53)
  • December (58)
  • November (61)
  • October (39)
  • September (36)
  • August (36)
  • July (34)
  • June (34)
  • May (36)
  • April (29)
  • March (82)
  • February (1)
  • January (8)
  • December (14)
  • November (41)
  • October (13)
  • September (5)
  • August (48)
  • July (9)
  • June (6)
  • May (119)
  • April (259)
  • March (122)
  • February (368)
  • January (33)
  • October (2)
  • July (11)
  • June (29)
  • May (25)
  • April (168)
  • March (93)
  • February (60)
  • January (28)
  • December (195)
  • November (24)
  • October (40)
  • September (55)
  • August (6)
  • July (48)
  • May (2)
  • January (2)
  • July (6)
  • June (6)
  • February (17)
  • January (69)
  • December (122)
  • November (56)
  • October (92)
  • September (76)
  • August (6)

Loading...

Laravel News

Loading...

Copyright © CoderFunda | Powered by Blogger
Design by Coderfunda | Blogger Theme by Coderfunda | Distributed By Coderfunda