{"id":405765,"date":"2023-10-26T06:36:02","date_gmt":"2023-10-26T06:36:02","guid":{"rendered":"https:\/\/webkul.com\/blog\/?p=405765"},"modified":"2024-04-12T14:04:22","modified_gmt":"2024-04-12T14:04:22","slug":"how-to-use-submodules-in-woocommerce-addons","status":"publish","type":"post","link":"https:\/\/webkul.com\/blog\/how-to-use-submodules-in-woocommerce-addons\/","title":{"rendered":"How to Use Submodules in WooCommerce Addons?"},"content":{"rendered":"\n<p>For using submodules in WooCommerce addons we need to configure it using <a href=\"https:\/\/www.atlassian.com\/git\/tutorials\/git-submodule\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">GitHub submodule<\/a> commands. It helps in modularizing our and re-usability in different modules helps in easily maintainable code.<\/p>\n\n\n\n<p>We have implemented submodules in our different add-ons like <a href=\"https:\/\/store.webkul.com\/woocommerce-point-of-sale.html\">WooCommerce PoS<\/a> and <a href=\"https:\/\/store.webkul.com\/woocommerce-wallet-plugin.html\">WooCommerce Wallet System<\/a> and working for the same with other addons also.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">What is Submodule?<\/h2>\n\n\n\n<p>A submodule is an easy way of maintaining some code block, pattern, or feature bundle that can be written once and can be of use in multiple modules with the latest changes.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Submodule Commands<\/h2>\n\n\n\n<p>Let&#8217;s catch up on some important commands for configuring and updating submodules. <\/p>\n\n\n\n<h3 class=\"wp-block-heading\">1. git submodule add<\/h3>\n\n\n\n<p>Using this command we can add an existing submodule to a main module. the syntax for this command is like git submodule add {git-url-to-submodule}<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">2. git submodule update &#8211;init &#8211;recursive<\/h3>\n\n\n\n<p>This command is useful when we have multiple submodules implemented in a main module and we need to update them all also initialize them if any of them are initialized earlier. <\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Use Case<\/h2>\n\n\n\n<p>In our earlier series of blogs, we explained using <a href=\"https:\/\/webkul.com\/blog\/how-to-use-caching-in-woocommerce-addons\/\" target=\"_blank\" rel=\"noreferrer noopener\">caching in WooCommerce addons<\/a> and using <a href=\"https:\/\/webkul.com\/blog\/how-to-use-redis-api-caching-in-woocommerce-plugin\/\" target=\"_blank\" rel=\"noreferrer noopener\">Redis for API caching in WooCommerce<\/a>. <\/p>\n\n\n\n<p>Now since caching is a common feature, it can be of use in any module to cache the data obtained from the database. <\/p>\n\n\n\n<p>We have implemented the submodule to use the latest caching technique in each module.<\/p>\n\n\n\n<p>We have created a submodule repo as &#8216;<strong>wk_caching<\/strong>&#8216; and added this in one of our Popular Plugin <a href=\"https:\/\/store.webkul.com\/woocommerce-multivendor-marketplace.html\" target=\"_blank\" rel=\"noreferrer noopener\">Multi Vendor Marketplace for WooCommerce<\/a> <\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" width=\"1200\" height=\"400\" src=\"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2023\/10\/submodule-add-1-1200x400.png\" alt=\"using-submodule-in-woocommerce-plugins\" class=\"wp-image-405859\" srcset=\"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2023\/10\/submodule-add-1-1200x400.png 1200w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2023\/10\/submodule-add-1-300x100.png 300w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2023\/10\/submodule-add-1-250x83.png 250w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2023\/10\/submodule-add-1-768x256.png 768w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2023\/10\/submodule-add-1.png 1357w\" sizes=\"(max-width: 1200px) 100vw, 1200px\" loading=\"lazy\" \/><\/figure>\n\n\n\n<p>In the above image, we have cloned our marketplace module then we have added our wk_caching submodule using the git submodule add command. <\/p>\n\n\n\n<p>After that, it will check the master branch of the submodule wk_caching.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Implementations of submodule<\/h2>\n\n\n\n<p>Now to use the caching methods for storing and retrieving our data from the cache, we&#8217;ll add a core loader module class class-wk-caching-core-loader.php<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\">&lt;?php\n\/**\n * WK Caching Core loader class.\n *\n * @package Multi Vendor Marketplace\n *\/\ndefined( &#039;ABSPATH&#039; ) || exit(); \/\/ Exit if access directly.\n\n\/**\n * This file is to initiate core and to run some common methods and decide which WK_Caching_Loader core should run.\n *\/\nif ( ! class_exists( &#039;WK_Caching_Core_Loader&#039; ) ) {\n\t\/**\n\t * WK_Caching_Core_Loader class.\n\t *\/\n\tclass WK_Caching_Core_Loader {\n\t\t\/**\n\t\t * Plugins array.\n\t\t *\n\t\t * @var @plugins\n\t\t *\/\n\t\tpublic static $plugins = array();\n\n\t\t\/**\n\t\t * Loaded.\n\t\t *\n\t\t * @var $loaded.\n\t\t *\/\n\t\tpublic static $loaded = false;\n\n\t\t\/**\n\t\t * Version\n\t\t *\n\t\t * @var $version.\n\t\t *\/\n\t\tpublic static $version = null;\n\n\t\t\/**\n\t\t * Include core.\n\t\t *\n\t\t * @return void\n\t\t *\/\n\t\tpublic static function include_core() {\n\t\t\t$get_configuration = self::get_the_latest();\n\n\t\t\tif ( false === self::$loaded &amp;&amp; $get_configuration &amp;&amp; is_array( $get_configuration ) &amp;&amp; isset( $get_configuration&#091;&#039;class&#039;] ) ) {\n\t\t\t\tif ( is_callable( array( $get_configuration&#091;&#039;class&#039;], &#039;load_files&#039; ) ) ) {\n\t\t\t\t\tself::$version = $get_configuration&#091;&#039;version&#039;];\n\t\t\t\t\tself::$loaded  = true;\n\t\t\t\t\tcall_user_func( array( $get_configuration&#091;&#039;class&#039;], &#039;load_files&#039; ) );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t\/**\n\t\t * Register.\n\t\t *\n\t\t * @param array $configuration Configuration.\n\t\t *\n\t\t * @return void\n\t\t *\/\n\t\tpublic static function register( $configuration ) {\n\t\t\tarray_push( self::$plugins, $configuration );\n\t\t}\n\n\t\t\/**\n\t\t * Get the latest.\n\t\t *\n\t\t * @return array\n\t\t *\/\n\t\tpublic static function get_the_latest() {\n\t\t\t$get_all = self::$plugins;\n\t\t\tuasort(\n\t\t\t\t$get_all,\n\t\t\t\tfunction ( $a, $b ) {\n\t\t\t\t\tif ( version_compare( $a&#091;&#039;version&#039;], $b&#091;&#039;version&#039;], &#039;=&#039; ) ) {\n\t\t\t\t\t\treturn 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn ( version_compare( $a&#091;&#039;version&#039;], $b&#091;&#039;version&#039;], &#039;&lt;&#039; ) ) ? - 1 : 1;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t);\n\n\t\t\t$get_most_recent_configuration = end( $get_all );\n\n\t\t\treturn $get_most_recent_configuration;\n\t\t}\n\t}\n}\n\n\nif ( ! class_exists( &#039;WKMP_WK_Caching_Core&#039; ) ) {\n\t\/**\n\t * WKMP_WK_Caching_Core\n\t *\/\n\tclass WKMP_WK_Caching_Core {\n\t\t\/**\n\t\t * WK Caching Loading Version.\n\t\t *\n\t\t * @var $version\n\t\t *\/\n\t\tpublic static $version = WKMP_LITE_WK_CACHING_VERSION;\n\n\t\t\/**\n\t\t * Register.\n\t\t *\n\t\t * @return void\n\t\t *\/\n\t\tpublic static function register() {\n\t\t\t$configuration = array(\n\t\t\t\t&#039;basename&#039;    =&gt; WKMP_LITE_PLUGIN_BASENAME,\n\t\t\t\t&#039;version&#039;     =&gt; self::$version,\n\t\t\t\t&#039;plugin_path&#039; =&gt; WKMP_LITE_PLUGIN_FILE,\n\t\t\t\t&#039;class&#039;       =&gt; __CLASS__,\n\t\t\t);\n\t\t\tWK_Caching_Core_Loader::register( $configuration );\n\t\t}\n\n\t\t\/**\n\t\t * Load files.\n\t\t *\n\t\t * @return bool\n\t\t *\/\n\t\tpublic static function load_files() {\n\t\t\t$get_global_path = WKMP_LITE_PLUGIN_FILE . &#039;wk_caching\/&#039;;\n\n\t\t\tif ( false === @file_exists( $get_global_path . &#039;\/includes\/class-wk-caching.php&#039; ) ) {\n\t\t\t\t_doing_it_wrong( __FUNCTION__, esc_html__( &#039;WK Caching Core should be present in folder \\&#039;wk_caching\\includes\\&#039; in order to run this properly.&#039;, &#039;wk-marketplace&#039; ), esc_html( self::$version ) );\n\t\t\t\tif ( defined( &#039;WKWC_DEV&#039; ) &amp;&amp; true === WKWC_DEV ) {\n\t\t\t\t\tdie( 0 );\n\t\t\t\t}\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\t\/**\n\t\t\t * Loading Core caching Files.\n\t\t\t *\/\n\t\t\trequire_once $get_global_path . &#039;includes\/class-wk-caching.php&#039;;\n\n\t\t\tif ( WK_CACHING_VERSION === self::$version ) {\n\t\t\t\tdo_action( &#039;wk_caching_loaded&#039;, $get_global_path );\n\t\t\t} else {\n\t\t\t\t_doing_it_wrong( __FUNCTION__, esc_html__( &#039;WK Caching Core should be at the same version as declared in your &quot;class-wk-caching-core-loader.php&quot;&#039;, &#039;wk-marketplace&#039; ), esc_html( self::$version ) );\n\t\t\t\tif ( defined( &#039;WKWC_DEV&#039; ) &amp;&amp; true === WKWC_DEV ) {\n\t\t\t\t\tdie( 0 );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\tWKMP_WK_Caching_Core::register();\n}<\/pre>\n\n\n\n<p>We&#8217;ll add this file in each module where we need to implement the caching submodule. It will ensure to load only the latest version of the submodule folder from only one module.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Invoking the Core<\/h2>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" width=\"1200\" height=\"284\" src=\"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2023\/10\/image-118-1200x284.png\" alt=\"invoking-submodule-in-addon\" class=\"wp-image-405870\" srcset=\"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2023\/10\/image-118-1200x284.png 1200w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2023\/10\/image-118-300x71.png 300w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2023\/10\/image-118-250x59.png 250w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2023\/10\/image-118-768x182.png 768w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2023\/10\/image-118-1536x363.png 1536w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2023\/10\/image-118.png 1978w\" sizes=\"(max-width: 1200px) 100vw, 1200px\" loading=\"lazy\" \/><\/figure>\n\n\n\n<p>Now after including the submodule core, we need to invoke it, and we have to include the caching core loader file and then call the &#8216;include_core&#8217; function on the plugins_loaded hook..<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Conclusion<\/h2>\n\n\n\n<p>After this configuration, we can implement all the caching functions used in our earlier blog through the module. So, that&#8217;s all about using submodules in <a href=\"https:\/\/store.webkul.com\/woocommerce-plugins.html\" target=\"_blank\" rel=\"noreferrer noopener\">WooCommerce plugins<\/a>. <\/p>\n\n\n\n<p>For any technical assistance, please\u00a0reach us by mail at\u00a0support@webkul.com<\/p>\n","protected":false},"excerpt":{"rendered":"<p>For using submodules in WooCommerce addons we need to configure it using GitHub submodule commands. It helps in modularizing our and re-usability in different modules helps in easily maintainable code. We have implemented submodules in our different add-ons like WooCommerce PoS and WooCommerce Wallet System and working for the same with other addons also. What <a href=\"https:\/\/webkul.com\/blog\/how-to-use-submodules-in-woocommerce-addons\/\">[&#8230;]<\/a><\/p>\n","protected":false},"author":498,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[13710,41,1773],"tags":[3355,7767,15023],"class_list":["post-405765","post","type-post","status-publish","format-standard","hentry","category-caching","category-module","category-woocommerce","tag-caching","tag-github","tag-submodule"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v24.5 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>How to Use Submodules in WooCommerce Addons?<\/title>\n<meta name=\"description\" content=\"Showing the complete process and flow of using submodules in WooCommerce addons using screenshots and code explanations.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/webkul.com\/blog\/how-to-use-submodules-in-woocommerce-addons\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"How to Use Submodules in WooCommerce Addons?\" \/>\n<meta property=\"og:description\" content=\"Showing the complete process and flow of using submodules in WooCommerce addons using screenshots and code explanations.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/webkul.com\/blog\/how-to-use-submodules-in-woocommerce-addons\/\" \/>\n<meta property=\"og:site_name\" content=\"Webkul Blog\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/webkul\/\" \/>\n<meta property=\"article:published_time\" content=\"2023-10-26T06:36:02+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-04-12T14:04:22+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/webkul.com\/blog\/wp-content\/uploads\/2023\/10\/submodule-add-1-1200x400.png\" \/>\n<meta name=\"author\" content=\"Dinesh Yadav\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@webkul\" \/>\n<meta name=\"twitter:site\" content=\"@webkul\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Dinesh Yadav\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"3 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/webkul.com\/blog\/how-to-use-submodules-in-woocommerce-addons\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/webkul.com\/blog\/how-to-use-submodules-in-woocommerce-addons\/\"},\"author\":{\"name\":\"Dinesh Yadav\",\"@id\":\"https:\/\/webkul.com\/blog\/#\/schema\/person\/a2c513ba357ca0781d2ea37d9da0f076\"},\"headline\":\"How to Use Submodules in WooCommerce Addons?\",\"datePublished\":\"2023-10-26T06:36:02+00:00\",\"dateModified\":\"2024-04-12T14:04:22+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/webkul.com\/blog\/how-to-use-submodules-in-woocommerce-addons\/\"},\"wordCount\":429,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/webkul.com\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/webkul.com\/blog\/how-to-use-submodules-in-woocommerce-addons\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/webkul.com\/blog\/wp-content\/uploads\/2023\/10\/submodule-add-1-1200x400.png\",\"keywords\":[\"caching\",\"Github\",\"submodule\"],\"articleSection\":[\"Caching\",\"module\",\"WooCommerce\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/webkul.com\/blog\/how-to-use-submodules-in-woocommerce-addons\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/webkul.com\/blog\/how-to-use-submodules-in-woocommerce-addons\/\",\"url\":\"https:\/\/webkul.com\/blog\/how-to-use-submodules-in-woocommerce-addons\/\",\"name\":\"How to Use Submodules in WooCommerce Addons?\",\"isPartOf\":{\"@id\":\"https:\/\/webkul.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/webkul.com\/blog\/how-to-use-submodules-in-woocommerce-addons\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/webkul.com\/blog\/how-to-use-submodules-in-woocommerce-addons\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/webkul.com\/blog\/wp-content\/uploads\/2023\/10\/submodule-add-1-1200x400.png\",\"datePublished\":\"2023-10-26T06:36:02+00:00\",\"dateModified\":\"2024-04-12T14:04:22+00:00\",\"description\":\"Showing the complete process and flow of using submodules in WooCommerce addons using screenshots and code explanations.\",\"breadcrumb\":{\"@id\":\"https:\/\/webkul.com\/blog\/how-to-use-submodules-in-woocommerce-addons\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/webkul.com\/blog\/how-to-use-submodules-in-woocommerce-addons\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/webkul.com\/blog\/how-to-use-submodules-in-woocommerce-addons\/#primaryimage\",\"url\":\"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2023\/10\/submodule-add-1.png\",\"contentUrl\":\"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2023\/10\/submodule-add-1.png\",\"width\":1357,\"height\":452,\"caption\":\"submodule-add-1\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/webkul.com\/blog\/how-to-use-submodules-in-woocommerce-addons\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/webkul.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"How to Use Submodules in WooCommerce Addons?\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/webkul.com\/blog\/#website\",\"url\":\"https:\/\/webkul.com\/blog\/\",\"name\":\"Webkul Blog\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\/\/webkul.com\/blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/webkul.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/webkul.com\/blog\/#organization\",\"name\":\"WebKul Software Private Limited\",\"url\":\"https:\/\/webkul.com\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/webkul.com\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2021\/08\/webkul-logo-accent-sq.png\",\"contentUrl\":\"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2021\/08\/webkul-logo-accent-sq.png\",\"width\":380,\"height\":380,\"caption\":\"WebKul Software Private Limited\"},\"image\":{\"@id\":\"https:\/\/webkul.com\/blog\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/webkul\/\",\"https:\/\/x.com\/webkul\",\"https:\/\/www.instagram.com\/webkul\/\",\"https:\/\/www.linkedin.com\/company\/webkul\",\"https:\/\/www.youtube.com\/user\/webkul\/\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/webkul.com\/blog\/#\/schema\/person\/a2c513ba357ca0781d2ea37d9da0f076\",\"name\":\"Dinesh Yadav\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/webkul.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/deaa9c46b9b57fbb117ac9a9e51ff5835f9320bd26661dd55bb9a162fc24d905?s=96&d=https%3A%2F%2Fcdnblog.webkul.com%2Fblog%2Fwp-content%2Fuploads%2F2019%2F10%2Fmike.png&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/deaa9c46b9b57fbb117ac9a9e51ff5835f9320bd26661dd55bb9a162fc24d905?s=96&d=https%3A%2F%2Fcdnblog.webkul.com%2Fblog%2Fwp-content%2Fuploads%2F2019%2F10%2Fmike.png&r=g\",\"caption\":\"Dinesh Yadav\"},\"description\":\"Dinesh Yadav, a seasoned Technical Project Manager in the WordPress department, excels in Marketplace Development Services. With deep expertise in WooCommerce modules. He crafts tailored solutions, optimizing performance and ensuring seamless user experiences for complex, scalable online marketplaces.\",\"url\":\"https:\/\/webkul.com\/blog\/author\/dineshyadav-wp\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"How to Use Submodules in WooCommerce Addons?","description":"Showing the complete process and flow of using submodules in WooCommerce addons using screenshots and code explanations.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/webkul.com\/blog\/how-to-use-submodules-in-woocommerce-addons\/","og_locale":"en_US","og_type":"article","og_title":"How to Use Submodules in WooCommerce Addons?","og_description":"Showing the complete process and flow of using submodules in WooCommerce addons using screenshots and code explanations.","og_url":"https:\/\/webkul.com\/blog\/how-to-use-submodules-in-woocommerce-addons\/","og_site_name":"Webkul Blog","article_publisher":"https:\/\/www.facebook.com\/webkul\/","article_published_time":"2023-10-26T06:36:02+00:00","article_modified_time":"2024-04-12T14:04:22+00:00","og_image":[{"url":"https:\/\/webkul.com\/blog\/wp-content\/uploads\/2023\/10\/submodule-add-1-1200x400.png","type":"","width":"","height":""}],"author":"Dinesh Yadav","twitter_card":"summary_large_image","twitter_creator":"@webkul","twitter_site":"@webkul","twitter_misc":{"Written by":"Dinesh Yadav","Est. reading time":"3 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/webkul.com\/blog\/how-to-use-submodules-in-woocommerce-addons\/#article","isPartOf":{"@id":"https:\/\/webkul.com\/blog\/how-to-use-submodules-in-woocommerce-addons\/"},"author":{"name":"Dinesh Yadav","@id":"https:\/\/webkul.com\/blog\/#\/schema\/person\/a2c513ba357ca0781d2ea37d9da0f076"},"headline":"How to Use Submodules in WooCommerce Addons?","datePublished":"2023-10-26T06:36:02+00:00","dateModified":"2024-04-12T14:04:22+00:00","mainEntityOfPage":{"@id":"https:\/\/webkul.com\/blog\/how-to-use-submodules-in-woocommerce-addons\/"},"wordCount":429,"commentCount":0,"publisher":{"@id":"https:\/\/webkul.com\/blog\/#organization"},"image":{"@id":"https:\/\/webkul.com\/blog\/how-to-use-submodules-in-woocommerce-addons\/#primaryimage"},"thumbnailUrl":"https:\/\/webkul.com\/blog\/wp-content\/uploads\/2023\/10\/submodule-add-1-1200x400.png","keywords":["caching","Github","submodule"],"articleSection":["Caching","module","WooCommerce"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/webkul.com\/blog\/how-to-use-submodules-in-woocommerce-addons\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/webkul.com\/blog\/how-to-use-submodules-in-woocommerce-addons\/","url":"https:\/\/webkul.com\/blog\/how-to-use-submodules-in-woocommerce-addons\/","name":"How to Use Submodules in WooCommerce Addons?","isPartOf":{"@id":"https:\/\/webkul.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/webkul.com\/blog\/how-to-use-submodules-in-woocommerce-addons\/#primaryimage"},"image":{"@id":"https:\/\/webkul.com\/blog\/how-to-use-submodules-in-woocommerce-addons\/#primaryimage"},"thumbnailUrl":"https:\/\/webkul.com\/blog\/wp-content\/uploads\/2023\/10\/submodule-add-1-1200x400.png","datePublished":"2023-10-26T06:36:02+00:00","dateModified":"2024-04-12T14:04:22+00:00","description":"Showing the complete process and flow of using submodules in WooCommerce addons using screenshots and code explanations.","breadcrumb":{"@id":"https:\/\/webkul.com\/blog\/how-to-use-submodules-in-woocommerce-addons\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/webkul.com\/blog\/how-to-use-submodules-in-woocommerce-addons\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/webkul.com\/blog\/how-to-use-submodules-in-woocommerce-addons\/#primaryimage","url":"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2023\/10\/submodule-add-1.png","contentUrl":"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2023\/10\/submodule-add-1.png","width":1357,"height":452,"caption":"submodule-add-1"},{"@type":"BreadcrumbList","@id":"https:\/\/webkul.com\/blog\/how-to-use-submodules-in-woocommerce-addons\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/webkul.com\/blog\/"},{"@type":"ListItem","position":2,"name":"How to Use Submodules in WooCommerce Addons?"}]},{"@type":"WebSite","@id":"https:\/\/webkul.com\/blog\/#website","url":"https:\/\/webkul.com\/blog\/","name":"Webkul Blog","description":"","publisher":{"@id":"https:\/\/webkul.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/webkul.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/webkul.com\/blog\/#organization","name":"WebKul Software Private Limited","url":"https:\/\/webkul.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/webkul.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2021\/08\/webkul-logo-accent-sq.png","contentUrl":"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2021\/08\/webkul-logo-accent-sq.png","width":380,"height":380,"caption":"WebKul Software Private Limited"},"image":{"@id":"https:\/\/webkul.com\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/webkul\/","https:\/\/x.com\/webkul","https:\/\/www.instagram.com\/webkul\/","https:\/\/www.linkedin.com\/company\/webkul","https:\/\/www.youtube.com\/user\/webkul\/"]},{"@type":"Person","@id":"https:\/\/webkul.com\/blog\/#\/schema\/person\/a2c513ba357ca0781d2ea37d9da0f076","name":"Dinesh Yadav","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/webkul.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/deaa9c46b9b57fbb117ac9a9e51ff5835f9320bd26661dd55bb9a162fc24d905?s=96&d=https%3A%2F%2Fcdnblog.webkul.com%2Fblog%2Fwp-content%2Fuploads%2F2019%2F10%2Fmike.png&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/deaa9c46b9b57fbb117ac9a9e51ff5835f9320bd26661dd55bb9a162fc24d905?s=96&d=https%3A%2F%2Fcdnblog.webkul.com%2Fblog%2Fwp-content%2Fuploads%2F2019%2F10%2Fmike.png&r=g","caption":"Dinesh Yadav"},"description":"Dinesh Yadav, a seasoned Technical Project Manager in the WordPress department, excels in Marketplace Development Services. With deep expertise in WooCommerce modules. He crafts tailored solutions, optimizing performance and ensuring seamless user experiences for complex, scalable online marketplaces.","url":"https:\/\/webkul.com\/blog\/author\/dineshyadav-wp\/"}]}},"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/webkul.com\/blog\/wp-json\/wp\/v2\/posts\/405765","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/webkul.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/webkul.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/webkul.com\/blog\/wp-json\/wp\/v2\/users\/498"}],"replies":[{"embeddable":true,"href":"https:\/\/webkul.com\/blog\/wp-json\/wp\/v2\/comments?post=405765"}],"version-history":[{"count":28,"href":"https:\/\/webkul.com\/blog\/wp-json\/wp\/v2\/posts\/405765\/revisions"}],"predecessor-version":[{"id":432995,"href":"https:\/\/webkul.com\/blog\/wp-json\/wp\/v2\/posts\/405765\/revisions\/432995"}],"wp:attachment":[{"href":"https:\/\/webkul.com\/blog\/wp-json\/wp\/v2\/media?parent=405765"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/webkul.com\/blog\/wp-json\/wp\/v2\/categories?post=405765"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/webkul.com\/blog\/wp-json\/wp\/v2\/tags?post=405765"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}