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





.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty,.everyoneloves__bot-mid-leaderboard:empty{ margin-bottom:0;
}







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
    Mar 28 at 8:02











  • Yes @Prathap Can you please send the exact code

    – shivashankar m
    Mar 28 at 8:03













  • @shivashankarm check my answer

    – Rakesh Donga
    Mar 28 at 8:27


















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
    Mar 28 at 8:02











  • Yes @Prathap Can you please send the exact code

    – shivashankar m
    Mar 28 at 8:03













  • @shivashankarm check my answer

    – Rakesh Donga
    Mar 28 at 8:27














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 Mar 28 at 8:20







shivashankar m

















asked Mar 28 at 7:57









shivashankar mshivashankar m

1,333828




1,333828













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

    – Prathap Gunasekaran
    Mar 28 at 8:02











  • Yes @Prathap Can you please send the exact code

    – shivashankar m
    Mar 28 at 8:03













  • @shivashankarm check my answer

    – Rakesh Donga
    Mar 28 at 8:27



















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

    – Prathap Gunasekaran
    Mar 28 at 8:02











  • Yes @Prathap Can you please send the exact code

    – shivashankar m
    Mar 28 at 8:03













  • @shivashankarm check my answer

    – Rakesh Donga
    Mar 28 at 8:27

















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

– Prathap Gunasekaran
Mar 28 at 8:02





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

– Prathap Gunasekaran
Mar 28 at 8:02













Yes @Prathap Can you please send the exact code

– shivashankar m
Mar 28 at 8:03







Yes @Prathap Can you please send the exact code

– shivashankar m
Mar 28 at 8:03















@shivashankarm check my answer

– Rakesh Donga
Mar 28 at 8:27





@shivashankarm check my answer

– Rakesh Donga
Mar 28 at 8:27










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
    Mar 28 at 9:38











  • i have updated my answer please check it

    – Rakesh Donga
    Mar 28 at 9:58











  • Hi @Rakesh the above code is working fine

    – shivashankar m
    Mar 28 at 10:26



















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
        Mar 28 at 9:38











      • i have updated my answer please check it

        – Rakesh Donga
        Mar 28 at 9:58











      • Hi @Rakesh the above code is working fine

        – shivashankar m
        Mar 28 at 10:26
















      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
        Mar 28 at 9:38











      • i have updated my answer please check it

        – Rakesh Donga
        Mar 28 at 9:58











      • Hi @Rakesh the above code is working fine

        – shivashankar m
        Mar 28 at 10:26














      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 Mar 28 at 9:58

























      answered Mar 28 at 8:27









      Rakesh DongaRakesh Donga

      2,390316




      2,390316













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

        – shivashankar m
        Mar 28 at 9:38











      • i have updated my answer please check it

        – Rakesh Donga
        Mar 28 at 9:58











      • Hi @Rakesh the above code is working fine

        – shivashankar m
        Mar 28 at 10:26



















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

        – shivashankar m
        Mar 28 at 9:38











      • i have updated my answer please check it

        – Rakesh Donga
        Mar 28 at 9:58











      • Hi @Rakesh the above code is working fine

        – shivashankar m
        Mar 28 at 10:26

















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

      – shivashankar m
      Mar 28 at 9:38





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

      – shivashankar m
      Mar 28 at 9:38













      i have updated my answer please check it

      – Rakesh Donga
      Mar 28 at 9:58





      i have updated my answer please check it

      – Rakesh Donga
      Mar 28 at 9:58













      Hi @Rakesh the above code is working fine

      – shivashankar m
      Mar 28 at 10:26





      Hi @Rakesh the above code is working fine

      – shivashankar m
      Mar 28 at 10:26













      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 Mar 28 at 8:05









          Prathap GunasekaranPrathap Gunasekaran

          1,7731618




          1,7731618























              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 Mar 28 at 10:15









                  PЯINCƏPЯINCƏ

                  8,41431146




                  8,41431146






























                      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

                      "Incorrect syntax near the keyword 'ON'. (on update cascade, on delete cascade,)

                      Alcedinidae

                      Origin of the phrase “under your belt”?