Magento 2 custom phtml file not calling to all products view pages












1















I have created custom phtml file, but that file is calling to all the products magento2



Please find the below code:



<referenceContainer name="product.info.form.content" >
<block
class="VendorModuleBlockProductViewRewardMesg"
name="reward_frontend_msg"
template="Vendor_Module::product/view/rewardMesg.phtml" before="product.info.addtocart"/>
</referenceContainer>


My block code is:



namespace VendorModuleBlockProductView;

use MagentoFrameworkViewElementTemplate;
use MagentoFrameworkRegistry;

class RewardMesg extends Template
{
/**
* @var Registry
*/
protected $registry;

/**
* @var MagentoCatalogModelProduct
*/
protected $product;

/**
* ProductView constructor.
* @param TemplateContext $context
* @param array $data
* @param Registry $registry
*/
public function __construct(
TemplateContext $context,
array $data = ,
Registry $registry
)
{
$this->registry = $registry;
parent::__construct($context, $data);
}

/**
* @return MagentoCatalogModelProduct
*/
public function getProduct()
{
if (is_null($this->product)) {
$this->product = $this->registry->registry('product');
}

return $this->product;
}
}


Help me appriciate.



Thanks










share|improve this question

























  • You want call your phtml in all the product pages ??

    – Prathap Gunasekaran
    2 days ago











  • Yes @Prathap Can you please send the exact code

    – shivashankar m
    2 days ago













  • @shivashankarm check my answer

    – Rakesh Donga
    2 days ago
















1















I have created custom phtml file, but that file is calling to all the products magento2



Please find the below code:



<referenceContainer name="product.info.form.content" >
<block
class="VendorModuleBlockProductViewRewardMesg"
name="reward_frontend_msg"
template="Vendor_Module::product/view/rewardMesg.phtml" before="product.info.addtocart"/>
</referenceContainer>


My block code is:



namespace VendorModuleBlockProductView;

use MagentoFrameworkViewElementTemplate;
use MagentoFrameworkRegistry;

class RewardMesg extends Template
{
/**
* @var Registry
*/
protected $registry;

/**
* @var MagentoCatalogModelProduct
*/
protected $product;

/**
* ProductView constructor.
* @param TemplateContext $context
* @param array $data
* @param Registry $registry
*/
public function __construct(
TemplateContext $context,
array $data = ,
Registry $registry
)
{
$this->registry = $registry;
parent::__construct($context, $data);
}

/**
* @return MagentoCatalogModelProduct
*/
public function getProduct()
{
if (is_null($this->product)) {
$this->product = $this->registry->registry('product');
}

return $this->product;
}
}


Help me appriciate.



Thanks










share|improve this question

























  • You want call your phtml in all the product pages ??

    – Prathap Gunasekaran
    2 days ago











  • Yes @Prathap Can you please send the exact code

    – shivashankar m
    2 days ago













  • @shivashankarm check my answer

    – Rakesh Donga
    2 days ago














1












1








1








I have created custom phtml file, but that file is calling to all the products magento2



Please find the below code:



<referenceContainer name="product.info.form.content" >
<block
class="VendorModuleBlockProductViewRewardMesg"
name="reward_frontend_msg"
template="Vendor_Module::product/view/rewardMesg.phtml" before="product.info.addtocart"/>
</referenceContainer>


My block code is:



namespace VendorModuleBlockProductView;

use MagentoFrameworkViewElementTemplate;
use MagentoFrameworkRegistry;

class RewardMesg extends Template
{
/**
* @var Registry
*/
protected $registry;

/**
* @var MagentoCatalogModelProduct
*/
protected $product;

/**
* ProductView constructor.
* @param TemplateContext $context
* @param array $data
* @param Registry $registry
*/
public function __construct(
TemplateContext $context,
array $data = ,
Registry $registry
)
{
$this->registry = $registry;
parent::__construct($context, $data);
}

/**
* @return MagentoCatalogModelProduct
*/
public function getProduct()
{
if (is_null($this->product)) {
$this->product = $this->registry->registry('product');
}

return $this->product;
}
}


Help me appriciate.



Thanks










share|improve this question
















I have created custom phtml file, but that file is calling to all the products magento2



Please find the below code:



<referenceContainer name="product.info.form.content" >
<block
class="VendorModuleBlockProductViewRewardMesg"
name="reward_frontend_msg"
template="Vendor_Module::product/view/rewardMesg.phtml" before="product.info.addtocart"/>
</referenceContainer>


My block code is:



namespace VendorModuleBlockProductView;

use MagentoFrameworkViewElementTemplate;
use MagentoFrameworkRegistry;

class RewardMesg extends Template
{
/**
* @var Registry
*/
protected $registry;

/**
* @var MagentoCatalogModelProduct
*/
protected $product;

/**
* ProductView constructor.
* @param TemplateContext $context
* @param array $data
* @param Registry $registry
*/
public function __construct(
TemplateContext $context,
array $data = ,
Registry $registry
)
{
$this->registry = $registry;
parent::__construct($context, $data);
}

/**
* @return MagentoCatalogModelProduct
*/
public function getProduct()
{
if (is_null($this->product)) {
$this->product = $this->registry->registry('product');
}

return $this->product;
}
}


Help me appriciate.



Thanks







magento2 product view






share|improve this question















share|improve this question













share|improve this question




share|improve this question








edited 2 days ago







shivashankar m

















asked 2 days ago









shivashankar mshivashankar m

1,333828




1,333828













  • You want call your phtml in all the product pages ??

    – Prathap Gunasekaran
    2 days ago











  • Yes @Prathap Can you please send the exact code

    – shivashankar m
    2 days ago













  • @shivashankarm check my answer

    – Rakesh Donga
    2 days ago



















  • You want call your phtml in all the product pages ??

    – Prathap Gunasekaran
    2 days ago











  • Yes @Prathap Can you please send the exact code

    – shivashankar m
    2 days ago













  • @shivashankarm check my answer

    – Rakesh Donga
    2 days ago

















You want call your phtml in all the product pages ??

– Prathap Gunasekaran
2 days ago





You want call your phtml in all the product pages ??

– Prathap Gunasekaran
2 days ago













Yes @Prathap Can you please send the exact code

– shivashankar m
2 days ago







Yes @Prathap Can you please send the exact code

– shivashankar m
2 days ago















@shivashankarm check my answer

– Rakesh Donga
2 days ago





@shivashankarm check my answer

– Rakesh Donga
2 days ago










3 Answers
3






active

oldest

votes


















1














create below file and add below code after check it




app/code/Vendor/Module/view/frontend/layout/catalog_product_view.xml




<page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:View/Layout/etc/page_configuration.xsd">
<body>
<referenceContainer name="product.info.main">
<block class="VendorModuleBlockProductViewRewardMesg" name="reward_frontend_msg" after="product.info.price" template="Vendor_Module::product/view/rewardMesg.phtml"/>
</referenceContainer>
</body>
</page>


Please don't forget to clear cache after change in xml files






share|improve this answer


























  • Hi @Rakesh it is working fine but i would like add it before qty section

    – shivashankar m
    2 days ago











  • i have updated my answer please check it

    – Rakesh Donga
    2 days ago











  • Hi @Rakesh the above code is working fine

    – shivashankar m
    2 days ago



















1














Try this,



Add the catalog_product_view.xml in the below path in your custom module




app/code/Vendor/ModuleName/view/frontend/layout/catalog_product_view.xml




then add the below code in it



<?xml version="1.0"?>
<page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:View/Layout/etc/page_configuration.xsd">
<body>
<referenceContainer name="content">
<block class="VendorModuleBlockProductViewRewardMesg" name="reward_frontend_msg" template="Vendor_Module::product/view/rewardMesg.phtml" before="product.info.addtocart" after="page.main.title">
</block>
</referenceContainer>
</body>
</page>


and place your phtml in the respective path




app/code/Vendor/ModuleName/view/frontend/templates/product/view/rewardMesg.phtml




Your phtml will load in after product title and before add to cart button.



Hope this helps






share|improve this answer































    1

















    1. app/code/Vendor/Modulename/view/frontend/layout/catalog_product_view.xml




      <page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:View/Layout/etc/page_configuration.xsd">
      <body>
      <block class="VendorModuleBlockBlockname" name="reward_frontend_msg" template="Vendor_Module::product/view/rewardMesg.phtml"/>
      </body>
      </page>




    2. app/code/Vendor/Modulename/view/frontend/templates/product/view/rewardMesg.phtml




      //Diplsay the bellow code where you want to block on product page

      <?php echo $block->getBlockHtml('reward_frontend_msg'); ?>







    share|improve this answer
























      Your Answer








      StackExchange.ready(function() {
      var channelOptions = {
      tags: "".split(" "),
      id: "479"
      };
      initTagRenderer("".split(" "), "".split(" "), channelOptions);

      StackExchange.using("externalEditor", function() {
      // Have to fire editor after snippets, if snippets enabled
      if (StackExchange.settings.snippets.snippetsEnabled) {
      StackExchange.using("snippets", function() {
      createEditor();
      });
      }
      else {
      createEditor();
      }
      });

      function createEditor() {
      StackExchange.prepareEditor({
      heartbeatType: 'answer',
      autoActivateHeartbeat: false,
      convertImagesToLinks: false,
      noModals: true,
      showLowRepImageUploadWarning: true,
      reputationToPostImages: null,
      bindNavPrevention: true,
      postfix: "",
      imageUploader: {
      brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
      contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
      allowUrls: true
      },
      onDemand: true,
      discardSelector: ".discard-answer"
      ,immediatelyShowMarkdownHelp:true
      });


      }
      });














      draft saved

      draft discarded


















      StackExchange.ready(
      function () {
      StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fmagento.stackexchange.com%2fquestions%2f267766%2fmagento-2-custom-phtml-file-not-calling-to-all-products-view-pages%23new-answer', 'question_page');
      }
      );

      Post as a guest















      Required, but never shown

























      3 Answers
      3






      active

      oldest

      votes








      3 Answers
      3






      active

      oldest

      votes









      active

      oldest

      votes






      active

      oldest

      votes









      1














      create below file and add below code after check it




      app/code/Vendor/Module/view/frontend/layout/catalog_product_view.xml




      <page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:View/Layout/etc/page_configuration.xsd">
      <body>
      <referenceContainer name="product.info.main">
      <block class="VendorModuleBlockProductViewRewardMesg" name="reward_frontend_msg" after="product.info.price" template="Vendor_Module::product/view/rewardMesg.phtml"/>
      </referenceContainer>
      </body>
      </page>


      Please don't forget to clear cache after change in xml files






      share|improve this answer


























      • Hi @Rakesh it is working fine but i would like add it before qty section

        – shivashankar m
        2 days ago











      • i have updated my answer please check it

        – Rakesh Donga
        2 days ago











      • Hi @Rakesh the above code is working fine

        – shivashankar m
        2 days ago
















      1














      create below file and add below code after check it




      app/code/Vendor/Module/view/frontend/layout/catalog_product_view.xml




      <page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:View/Layout/etc/page_configuration.xsd">
      <body>
      <referenceContainer name="product.info.main">
      <block class="VendorModuleBlockProductViewRewardMesg" name="reward_frontend_msg" after="product.info.price" template="Vendor_Module::product/view/rewardMesg.phtml"/>
      </referenceContainer>
      </body>
      </page>


      Please don't forget to clear cache after change in xml files






      share|improve this answer


























      • Hi @Rakesh it is working fine but i would like add it before qty section

        – shivashankar m
        2 days ago











      • i have updated my answer please check it

        – Rakesh Donga
        2 days ago











      • Hi @Rakesh the above code is working fine

        – shivashankar m
        2 days ago














      1












      1








      1







      create below file and add below code after check it




      app/code/Vendor/Module/view/frontend/layout/catalog_product_view.xml




      <page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:View/Layout/etc/page_configuration.xsd">
      <body>
      <referenceContainer name="product.info.main">
      <block class="VendorModuleBlockProductViewRewardMesg" name="reward_frontend_msg" after="product.info.price" template="Vendor_Module::product/view/rewardMesg.phtml"/>
      </referenceContainer>
      </body>
      </page>


      Please don't forget to clear cache after change in xml files






      share|improve this answer















      create below file and add below code after check it




      app/code/Vendor/Module/view/frontend/layout/catalog_product_view.xml




      <page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:View/Layout/etc/page_configuration.xsd">
      <body>
      <referenceContainer name="product.info.main">
      <block class="VendorModuleBlockProductViewRewardMesg" name="reward_frontend_msg" after="product.info.price" template="Vendor_Module::product/view/rewardMesg.phtml"/>
      </referenceContainer>
      </body>
      </page>


      Please don't forget to clear cache after change in xml files







      share|improve this answer














      share|improve this answer



      share|improve this answer








      edited 2 days ago

























      answered 2 days ago









      Rakesh DongaRakesh Donga

      2,258316




      2,258316













      • Hi @Rakesh it is working fine but i would like add it before qty section

        – shivashankar m
        2 days ago











      • i have updated my answer please check it

        – Rakesh Donga
        2 days ago











      • Hi @Rakesh the above code is working fine

        – shivashankar m
        2 days ago



















      • Hi @Rakesh it is working fine but i would like add it before qty section

        – shivashankar m
        2 days ago











      • i have updated my answer please check it

        – Rakesh Donga
        2 days ago











      • Hi @Rakesh the above code is working fine

        – shivashankar m
        2 days ago

















      Hi @Rakesh it is working fine but i would like add it before qty section

      – shivashankar m
      2 days ago





      Hi @Rakesh it is working fine but i would like add it before qty section

      – shivashankar m
      2 days ago













      i have updated my answer please check it

      – Rakesh Donga
      2 days ago





      i have updated my answer please check it

      – Rakesh Donga
      2 days ago













      Hi @Rakesh the above code is working fine

      – shivashankar m
      2 days ago





      Hi @Rakesh the above code is working fine

      – shivashankar m
      2 days ago













      1














      Try this,



      Add the catalog_product_view.xml in the below path in your custom module




      app/code/Vendor/ModuleName/view/frontend/layout/catalog_product_view.xml




      then add the below code in it



      <?xml version="1.0"?>
      <page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:View/Layout/etc/page_configuration.xsd">
      <body>
      <referenceContainer name="content">
      <block class="VendorModuleBlockProductViewRewardMesg" name="reward_frontend_msg" template="Vendor_Module::product/view/rewardMesg.phtml" before="product.info.addtocart" after="page.main.title">
      </block>
      </referenceContainer>
      </body>
      </page>


      and place your phtml in the respective path




      app/code/Vendor/ModuleName/view/frontend/templates/product/view/rewardMesg.phtml




      Your phtml will load in after product title and before add to cart button.



      Hope this helps






      share|improve this answer




























        1














        Try this,



        Add the catalog_product_view.xml in the below path in your custom module




        app/code/Vendor/ModuleName/view/frontend/layout/catalog_product_view.xml




        then add the below code in it



        <?xml version="1.0"?>
        <page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:View/Layout/etc/page_configuration.xsd">
        <body>
        <referenceContainer name="content">
        <block class="VendorModuleBlockProductViewRewardMesg" name="reward_frontend_msg" template="Vendor_Module::product/view/rewardMesg.phtml" before="product.info.addtocart" after="page.main.title">
        </block>
        </referenceContainer>
        </body>
        </page>


        and place your phtml in the respective path




        app/code/Vendor/ModuleName/view/frontend/templates/product/view/rewardMesg.phtml




        Your phtml will load in after product title and before add to cart button.



        Hope this helps






        share|improve this answer


























          1












          1








          1







          Try this,



          Add the catalog_product_view.xml in the below path in your custom module




          app/code/Vendor/ModuleName/view/frontend/layout/catalog_product_view.xml




          then add the below code in it



          <?xml version="1.0"?>
          <page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:View/Layout/etc/page_configuration.xsd">
          <body>
          <referenceContainer name="content">
          <block class="VendorModuleBlockProductViewRewardMesg" name="reward_frontend_msg" template="Vendor_Module::product/view/rewardMesg.phtml" before="product.info.addtocart" after="page.main.title">
          </block>
          </referenceContainer>
          </body>
          </page>


          and place your phtml in the respective path




          app/code/Vendor/ModuleName/view/frontend/templates/product/view/rewardMesg.phtml




          Your phtml will load in after product title and before add to cart button.



          Hope this helps






          share|improve this answer













          Try this,



          Add the catalog_product_view.xml in the below path in your custom module




          app/code/Vendor/ModuleName/view/frontend/layout/catalog_product_view.xml




          then add the below code in it



          <?xml version="1.0"?>
          <page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:View/Layout/etc/page_configuration.xsd">
          <body>
          <referenceContainer name="content">
          <block class="VendorModuleBlockProductViewRewardMesg" name="reward_frontend_msg" template="Vendor_Module::product/view/rewardMesg.phtml" before="product.info.addtocart" after="page.main.title">
          </block>
          </referenceContainer>
          </body>
          </page>


          and place your phtml in the respective path




          app/code/Vendor/ModuleName/view/frontend/templates/product/view/rewardMesg.phtml




          Your phtml will load in after product title and before add to cart button.



          Hope this helps







          share|improve this answer












          share|improve this answer



          share|improve this answer










          answered 2 days ago









          Prathap GunasekaranPrathap Gunasekaran

          1,5761618




          1,5761618























              1

















              1. app/code/Vendor/Modulename/view/frontend/layout/catalog_product_view.xml




                <page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:View/Layout/etc/page_configuration.xsd">
                <body>
                <block class="VendorModuleBlockBlockname" name="reward_frontend_msg" template="Vendor_Module::product/view/rewardMesg.phtml"/>
                </body>
                </page>




              2. app/code/Vendor/Modulename/view/frontend/templates/product/view/rewardMesg.phtml




                //Diplsay the bellow code where you want to block on product page

                <?php echo $block->getBlockHtml('reward_frontend_msg'); ?>







              share|improve this answer




























                1

















                1. app/code/Vendor/Modulename/view/frontend/layout/catalog_product_view.xml




                  <page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:View/Layout/etc/page_configuration.xsd">
                  <body>
                  <block class="VendorModuleBlockBlockname" name="reward_frontend_msg" template="Vendor_Module::product/view/rewardMesg.phtml"/>
                  </body>
                  </page>




                2. app/code/Vendor/Modulename/view/frontend/templates/product/view/rewardMesg.phtml




                  //Diplsay the bellow code where you want to block on product page

                  <?php echo $block->getBlockHtml('reward_frontend_msg'); ?>







                share|improve this answer


























                  1












                  1








                  1










                  1. app/code/Vendor/Modulename/view/frontend/layout/catalog_product_view.xml




                    <page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:View/Layout/etc/page_configuration.xsd">
                    <body>
                    <block class="VendorModuleBlockBlockname" name="reward_frontend_msg" template="Vendor_Module::product/view/rewardMesg.phtml"/>
                    </body>
                    </page>




                  2. app/code/Vendor/Modulename/view/frontend/templates/product/view/rewardMesg.phtml




                    //Diplsay the bellow code where you want to block on product page

                    <?php echo $block->getBlockHtml('reward_frontend_msg'); ?>







                  share|improve this answer
















                  1. app/code/Vendor/Modulename/view/frontend/layout/catalog_product_view.xml




                    <page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:View/Layout/etc/page_configuration.xsd">
                    <body>
                    <block class="VendorModuleBlockBlockname" name="reward_frontend_msg" template="Vendor_Module::product/view/rewardMesg.phtml"/>
                    </body>
                    </page>




                  2. app/code/Vendor/Modulename/view/frontend/templates/product/view/rewardMesg.phtml




                    //Diplsay the bellow code where you want to block on product page

                    <?php echo $block->getBlockHtml('reward_frontend_msg'); ?>








                  share|improve this answer












                  share|improve this answer



                  share|improve this answer










                  answered 2 days ago









                  PЯINCƏPЯINCƏ

                  8,38931145




                  8,38931145






























                      draft saved

                      draft discarded




















































                      Thanks for contributing an answer to Magento Stack Exchange!


                      • Please be sure to answer the question. Provide details and share your research!

                      But avoid



                      • Asking for help, clarification, or responding to other answers.

                      • Making statements based on opinion; back them up with references or personal experience.


                      To learn more, see our tips on writing great answers.




                      draft saved


                      draft discarded














                      StackExchange.ready(
                      function () {
                      StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fmagento.stackexchange.com%2fquestions%2f267766%2fmagento-2-custom-phtml-file-not-calling-to-all-products-view-pages%23new-answer', 'question_page');
                      }
                      );

                      Post as a guest















                      Required, but never shown





















































                      Required, but never shown














                      Required, but never shown












                      Required, but never shown







                      Required, but never shown

































                      Required, but never shown














                      Required, but never shown












                      Required, but never shown







                      Required, but never shown







                      Popular posts from this blog

                      數位音樂下載

                      When can things happen in Etherscan, such as the picture below?

                      格利澤436b