<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Mahbub Rabbani</title>
    <description>The latest articles on DEV Community by Mahbub Rabbani (@mrabbani).</description>
    <link>https://dev.to/mrabbani</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F55718%2F7379a03f-3885-4ffd-b952-8c11c0809a0b.jpeg</url>
      <title>DEV Community: Mahbub Rabbani</title>
      <link>https://dev.to/mrabbani</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/mrabbani"/>
    <language>en</language>
    <item>
      <title>WordPress Error Log Not Showing with Laravel Herd</title>
      <dc:creator>Mahbub Rabbani</dc:creator>
      <pubDate>Wed, 22 May 2024 02:24:09 +0000</pubDate>
      <link>https://dev.to/mrabbani/wordpress-error-log-not-showing-with-laravel-herd-4ahp</link>
      <guid>https://dev.to/mrabbani/wordpress-error-log-not-showing-with-laravel-herd-4ahp</guid>
      <description>&lt;p&gt;"Laravel Herd" writes logs to &lt;code&gt;/Users/{user_name}/Library/Application Support/Herd/Log/php-fpm.log&lt;/code&gt; file.&lt;/p&gt;

&lt;p&gt;You need to go to &lt;code&gt;/Users/{user_name}/Library/Application Support/Herd/Config/fpm&lt;/code&gt; directory. There you will find files for different php versions. Example: [php_version]-fpm.config&lt;/p&gt;

&lt;p&gt;Open each file and comment out &lt;br&gt;
&lt;code&gt;php_admin_value[error_log] = /Users/{user_name}/Library/Application&lt;/code&gt;&lt;br&gt;
line by adding a semicolon &lt;code&gt;;&lt;/code&gt; in front of the line.&lt;/p&gt;

&lt;p&gt;Example: &lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;;php_admin_value[error_log] = /Users/{user_name}/Library/Application
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;After that go to herd and stop all services and again start all services.&lt;/p&gt;

&lt;p&gt;You should see your logs in &lt;code&gt;wp-contents/debug.log&lt;/code&gt; file.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Source&lt;/strong&gt; &lt;a href="https://stackoverflow.com/a/77102145" rel="noopener noreferrer"&gt;https://stackoverflow.com/a/77102145&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>wordpress</category>
      <category>laravel</category>
      <category>development</category>
      <category>debugging</category>
    </item>
    <item>
      <title>Format Woocommerce price in javascript according to the Woocommerce settings.</title>
      <dc:creator>Mahbub Rabbani</dc:creator>
      <pubDate>Sun, 05 Nov 2023 04:43:51 +0000</pubDate>
      <link>https://dev.to/mrabbani/format-woocommerce-price-in-javascript-according-to-the-woocommerce-settings-ek4</link>
      <guid>https://dev.to/mrabbani/format-woocommerce-price-in-javascript-according-to-the-woocommerce-settings-ek4</guid>
      <description>&lt;p&gt;Woocommerce plugin formats the price in javascript for &lt;strong&gt;Filter Products by Price&lt;/strong&gt; widget. You may check out &lt;a href="https://github.com/woocommerce/woocommerce/blob/b1b9e113232cf2e48c7b706a15dca504f123eb45/plugins/woocommerce/includes/widgets/class-wc-widget-price-filter.php" rel="noopener noreferrer"&gt;the source&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Here, I will try to show you how we can achieve this feature.&lt;/p&gt;

&lt;p&gt;Let's create a class named &lt;code&gt;PriceFomatterAsset&lt;/code&gt; in &lt;code&gt;PriceFomatterAsset.php&lt;/code&gt;&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight php"&gt;&lt;code&gt;

&lt;span class="cp"&gt;&amp;lt;?php&lt;/span&gt;

&lt;span class="kn"&gt;use&lt;/span&gt; &lt;span class="nc"&gt;Automattic\Jetpack\Constants&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="kd"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;PriceFomatterAsset&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="cd"&gt;/**
     * Constructor.
     */&lt;/span&gt;
    &lt;span class="k"&gt;public&lt;/span&gt; &lt;span class="k"&gt;function&lt;/span&gt; &lt;span class="n"&gt;__construct&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="nf"&gt;add_action&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'init'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt; &lt;span class="nv"&gt;$this&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;'register_scripts'&lt;/span&gt;&lt;span class="p"&gt;]);&lt;/span&gt;
        &lt;span class="nf"&gt;add_action&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt; &lt;span class="s1"&gt;'wp_enqueue_scripts'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nv"&gt;$this&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;'enqueue_front_scripts'&lt;/span&gt; &lt;span class="p"&gt;]);&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;

    &lt;span class="cd"&gt;/**
     * Register all Dokan scripts and styles.
     *
     * @return void
     */&lt;/span&gt;
    &lt;span class="k"&gt;public&lt;/span&gt; &lt;span class="k"&gt;function&lt;/span&gt; &lt;span class="n"&gt;register_scripts&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="nv"&gt;$suffix&lt;/span&gt;                   &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nc"&gt;Constants&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="nf"&gt;is_true&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt; &lt;span class="s1"&gt;'SCRIPT_DEBUG'&lt;/span&gt; &lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;?&lt;/span&gt; &lt;span class="s1"&gt;''&lt;/span&gt; &lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;'.min'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
        &lt;span class="nv"&gt;$version&lt;/span&gt;                  &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nc"&gt;Constants&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="nf"&gt;get_constant&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt; &lt;span class="s1"&gt;'WC_VERSION'&lt;/span&gt; &lt;span class="p"&gt;);&lt;/span&gt;
        &lt;span class="nf"&gt;wp_register_script&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt; &lt;span class="s1"&gt;'accounting'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nf"&gt;WC&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;plugin_url&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="mf"&gt;.&lt;/span&gt; &lt;span class="s1"&gt;'/assets/js/accounting/accounting'&lt;/span&gt; &lt;span class="mf"&gt;.&lt;/span&gt; &lt;span class="nv"&gt;$suffix&lt;/span&gt; &lt;span class="mf"&gt;.&lt;/span&gt; &lt;span class="s1"&gt;'.js'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="k"&gt;array&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt; &lt;span class="s1"&gt;'jquery'&lt;/span&gt; &lt;span class="p"&gt;),&lt;/span&gt; &lt;span class="s1"&gt;'0.4.2'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt; &lt;span class="p"&gt;);&lt;/span&gt;
        &lt;span class="nf"&gt;wp_register_script&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt; &lt;span class="s1"&gt;'wc-jquery-ui-touchpunch'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nf"&gt;WC&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;plugin_url&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="mf"&gt;.&lt;/span&gt; &lt;span class="s1"&gt;'/assets/js/jquery-ui-touch-punch/jquery-ui-touch-punch'&lt;/span&gt; &lt;span class="mf"&gt;.&lt;/span&gt; &lt;span class="nv"&gt;$suffix&lt;/span&gt; &lt;span class="mf"&gt;.&lt;/span&gt; &lt;span class="s1"&gt;'.js'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="k"&gt;array&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt; &lt;span class="s1"&gt;'jquery-ui-slider'&lt;/span&gt; &lt;span class="p"&gt;),&lt;/span&gt; &lt;span class="nv"&gt;$version&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt; &lt;span class="p"&gt;);&lt;/span&gt;

        &lt;span class="c1"&gt;// Replace according to your plugin and js file location.&lt;/span&gt;
        &lt;span class="nf"&gt;wp_register_script&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt; &lt;span class="s1"&gt;'welabs_script_price_formatter'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;your&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;plugin&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;url&lt;/span&gt; &lt;span class="mf"&gt;.&lt;/span&gt; &lt;span class="s1"&gt;'/assets/frontend/js/price-formatter.js'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="k"&gt;array&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt; &lt;span class="s1"&gt;'jquery-ui-slider'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;'wc-jquery-ui-touchpunch'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;'accounting'&lt;/span&gt; &lt;span class="p"&gt;),&lt;/span&gt; &lt;span class="kc"&gt;null&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt; &lt;span class="p"&gt;);&lt;/span&gt;
        &lt;span class="nf"&gt;wp_localize_script&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
            &lt;span class="s1"&gt;'welabs_script_price_formatter'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
            &lt;span class="s1"&gt;'welabs_price_formatter_params'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
            &lt;span class="k"&gt;array&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
                &lt;span class="s1"&gt;'currency_format_num_decimals'&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
                &lt;span class="s1"&gt;'currency_format_symbol'&lt;/span&gt;       &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="nf"&gt;get_woocommerce_currency_symbol&lt;/span&gt;&lt;span class="p"&gt;(),&lt;/span&gt;
                &lt;span class="s1"&gt;'currency_format_decimal_sep'&lt;/span&gt;  &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="nf"&gt;esc_attr&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt; &lt;span class="nf"&gt;wc_get_price_decimal_separator&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;),&lt;/span&gt;
                &lt;span class="s1"&gt;'currency_format_thousand_sep'&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="nf"&gt;esc_attr&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt; &lt;span class="nf"&gt;wc_get_price_thousand_separator&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;),&lt;/span&gt;
                &lt;span class="s1"&gt;'currency_format'&lt;/span&gt;              &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="nf"&gt;esc_attr&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt; &lt;span class="nb"&gt;str_replace&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt; &lt;span class="k"&gt;array&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt; &lt;span class="s1"&gt;'%1$s'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;'%2$s'&lt;/span&gt; &lt;span class="p"&gt;),&lt;/span&gt; &lt;span class="k"&gt;array&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt; &lt;span class="s1"&gt;'%s'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;'%v'&lt;/span&gt; &lt;span class="p"&gt;),&lt;/span&gt; &lt;span class="nf"&gt;get_woocommerce_price_format&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;),&lt;/span&gt;
            &lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;

    &lt;span class="cd"&gt;/**
     * Enqueue front-end scripts.
     *
     * @return void
     */&lt;/span&gt;
    &lt;span class="k"&gt;public&lt;/span&gt; &lt;span class="k"&gt;function&lt;/span&gt; &lt;span class="n"&gt;enqueue_front_scripts&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
         &lt;span class="c1"&gt;// You may apply logic to enqueue this script like did_action.&lt;/span&gt;
         &lt;span class="nf"&gt;wp_enqueue_script&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt; &lt;span class="s1"&gt;'welabs_script_price_formatter'&lt;/span&gt; &lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;



&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;Now, let's create JS file named &lt;code&gt;price-formatter.js&lt;/code&gt; where we will define a global function &lt;code&gt;welabs_price_format&lt;/code&gt; to format the price according to Woocommerce settings. &lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;

&lt;span class="nb"&gt;window&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;welabs_price_format&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="kd"&gt;function&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;price&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;if &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt; &lt;span class="k"&gt;typeof&lt;/span&gt; &lt;span class="nx"&gt;welabs_price_formatter_params&lt;/span&gt; &lt;span class="o"&gt;===&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;undefined&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt; &lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="kc"&gt;false&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;

    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nx"&gt;accounting&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;formatMoney&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt; &lt;span class="nx"&gt;price&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="na"&gt;symbol&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;    &lt;span class="nx"&gt;welabs_price_formatter_params&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;currency_format_symbol&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="na"&gt;decimal&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;   &lt;span class="nx"&gt;welabs_price_formatter_params&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;currency_format_decimal_sep&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="na"&gt;thousand&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;  &lt;span class="nx"&gt;welabs_price_formatter_params&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;currency_format_thousand_sep&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="na"&gt;precision&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;welabs_price_formatter_params&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;currency_format_num_decimals&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="na"&gt;format&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;    &lt;span class="nx"&gt;welabs_price_formatter_params&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;currency_format&lt;/span&gt;
    &lt;span class="p"&gt;});&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;



&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;Now, you have to instantiate the &lt;code&gt;PriceFomatterAsset&lt;/code&gt; class. For example&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;

 function load_price_formatter_asset() {
    new PriceFomatterAsset();
}

add_action( 'plugins_loaded', 'load_price_formatter_asset' );


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;Now, You are ready to use &lt;code&gt;welabs_price_format&lt;/code&gt; function in any javascript file.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fgf4ytk4vsq1rm6574sff.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fgf4ytk4vsq1rm6574sff.png" alt="Browser console"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>woocommerce</category>
      <category>price</category>
      <category>format</category>
      <category>javascript</category>
    </item>
    <item>
      <title>VS Code- configure WordPress coding standards</title>
      <dc:creator>Mahbub Rabbani</dc:creator>
      <pubDate>Wed, 21 Jun 2023 04:19:04 +0000</pubDate>
      <link>https://dev.to/mrabbani/vs-code-configure-wordpress-coding-standards-469f</link>
      <guid>https://dev.to/mrabbani/vs-code-configure-wordpress-coding-standards-469f</guid>
      <description>&lt;p&gt;You may need to configure different coding standards e.i &lt;code&gt;PSR4, WordPress, etc.&lt;/code&gt; in &lt;strong&gt;VS Code&lt;/strong&gt; for different projects. Here, I will discuss about project specific CS configuration. I hope that you are familiar with &lt;a href="https://github.com/WordPress/WordPress-Coding-Standards" rel="noopener noreferrer"&gt;WordPress Coding Standards&lt;/a&gt; and &lt;a href="https://getcomposer.org/doc/04-schema.md#psr-4" rel="noopener noreferrer"&gt;PSR-4 autoload&lt;/a&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://marketplace.visualstudio.com/items?itemName=wongjn.php-sniffer" rel="noopener noreferrer"&gt;VS code PHP sniffer Extension&lt;/a&gt;:
&lt;/h3&gt;

&lt;p&gt;Add this extension and configure your coding standard. The sample configuration of VS code &lt;a href="https://code.visualstudio.com/docs/getstarted/settings" rel="noopener noreferrer"&gt;settings.json&lt;/a&gt; is as follows:&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;

  "editor.formatOnSave": true,
  "phpSniffer.autoDetect": true,
  "[php]": {
    "editor.defaultFormatter": "wongjn.php-sniffer"
  }


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;You checkout &lt;a href="https://marketplace.visualstudio.com/items?itemName=wongjn.php-sniffer" rel="noopener noreferrer"&gt;available settings&lt;/a&gt; of this extension.&lt;/p&gt;

&lt;h3&gt;
  
  
  Open plugin in VS Code
&lt;/h3&gt;

&lt;p&gt;There are two options to open your plugin in VS Code.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;em&gt;Option 1&lt;/em&gt;: Open plugin as a separate project.&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;Option 2&lt;/em&gt;: Add plugin in existing workspace. Goto &lt;strong&gt;File -&amp;gt; Add Folder to Workspace...&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Dev package dependency
&lt;/h3&gt;

&lt;p&gt;Add the following packages to &lt;code&gt;composer.json&lt;/code&gt; file of your plugin and run &lt;code&gt;composer update&lt;/code&gt; command.&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="w"&gt;

&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="err"&gt;.....&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"require-dev"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="nl"&gt;"wp-coding-standards/wpcs"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"dev-develop"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="nl"&gt;"dealerdirect/phpcodesniffer-composer-installer"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"^0.7.2"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="nl"&gt;"tareq1988/wp-php-cs-fixer"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"dev-master"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="nl"&gt;"phpcompatibility/phpcompatibility-wp"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"dev-master"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="nl"&gt;"phpunit/phpunit"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"~8.5"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="nl"&gt;"wp-phpunit/wp-phpunit"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"^6.1"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="nl"&gt;"yoast/phpunit-polyfills"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"^1.0"&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt;
   &lt;/span&gt;&lt;span class="nl"&gt;"scripts"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="nl"&gt;"phpcs"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="w"&gt;
            &lt;/span&gt;&lt;span class="s2"&gt;"vendor/bin/phpcs -p -s"&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="nl"&gt;"phpcs:report"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="w"&gt;
            &lt;/span&gt;&lt;span class="s2"&gt;"vendor/bin/phpcs --report-file='phpcs-report.txt'"&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="nl"&gt;"phpcbf"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="w"&gt;
            &lt;/span&gt;&lt;span class="s2"&gt;"vendor/bin/phpcbf -p"&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;


&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;Run &lt;code&gt;./vendor/bin/phpcs -i&lt;/code&gt; command from your plugin directory to see the available coding standards.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F979h8c9hs30ukpqkzive.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F979h8c9hs30ukpqkzive.png" alt="Available coding standards"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Set Standard and Rules
&lt;/h3&gt;

&lt;p&gt;Add a new file name &lt;code&gt;phpcs.xml&lt;/code&gt; into your plugin so that you can customize the rules and standard as follows:&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight xml"&gt;&lt;code&gt;

&lt;span class="cp"&gt;&amp;lt;?xml version="1.0"?&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;ruleset&lt;/span&gt; &lt;span class="na"&gt;name=&lt;/span&gt;&lt;span class="s"&gt;"WordPress Coding Standards"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;description&amp;gt;&lt;/span&gt;Generally-applicable sniffs for WordPress plugins.&lt;span class="nt"&gt;&amp;lt;/description&amp;gt;&lt;/span&gt;

    &lt;span class="c"&gt;&amp;lt;!-- What to scan --&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;file&amp;gt;&lt;/span&gt;.&lt;span class="nt"&gt;&amp;lt;/file&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;exclude-pattern&amp;gt;&lt;/span&gt;*/.git/*&lt;span class="nt"&gt;&amp;lt;/exclude-pattern&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;exclude-pattern&amp;gt;&lt;/span&gt;*/.githooks/*&lt;span class="nt"&gt;&amp;lt;/exclude-pattern&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;exclude-pattern&amp;gt;&lt;/span&gt;*/.make/*&lt;span class="nt"&gt;&amp;lt;/exclude-pattern&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;exclude-pattern&amp;gt;&lt;/span&gt;*/assets/*&lt;span class="nt"&gt;&amp;lt;/exclude-pattern&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;exclude-pattern&amp;gt;&lt;/span&gt;*/src/*&lt;span class="nt"&gt;&amp;lt;/exclude-pattern&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;exclude-pattern&amp;gt;&lt;/span&gt;*/lib/*&lt;span class="nt"&gt;&amp;lt;/exclude-pattern&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;exclude-pattern&amp;gt;&lt;/span&gt;*/dist/*&lt;span class="nt"&gt;&amp;lt;/exclude-pattern&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;exclude-pattern&amp;gt;&lt;/span&gt;*/build/*&lt;span class="nt"&gt;&amp;lt;/exclude-pattern&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;exclude-pattern&amp;gt;&lt;/span&gt;*/node_modules/*&lt;span class="nt"&gt;&amp;lt;/exclude-pattern&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;exclude-pattern&amp;gt;&lt;/span&gt;*/vendor/*&lt;span class="nt"&gt;&amp;lt;/exclude-pattern&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;exclude-pattern&amp;gt;&lt;/span&gt;*/tests/*&lt;span class="nt"&gt;&amp;lt;/exclude-pattern&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;exclude-pattern&amp;gt;&lt;/span&gt;*.js&lt;span class="nt"&gt;&amp;lt;/exclude-pattern&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;exclude-pattern&amp;gt;&lt;/span&gt;*.mo&lt;span class="nt"&gt;&amp;lt;/exclude-pattern&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;exclude-pattern&amp;gt;&lt;/span&gt;*.twig&lt;span class="nt"&gt;&amp;lt;/exclude-pattern&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;exclude-pattern&amp;gt;&lt;/span&gt;*.css&lt;span class="nt"&gt;&amp;lt;/exclude-pattern&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;exclude-pattern&amp;gt;&lt;/span&gt;*.scss&lt;span class="nt"&gt;&amp;lt;/exclude-pattern&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;exclude-pattern&amp;gt;&lt;/span&gt;languages/*&lt;span class="nt"&gt;&amp;lt;/exclude-pattern&amp;gt;&lt;/span&gt;

    &lt;span class="c"&gt;&amp;lt;!-- How to scan --&amp;gt;&lt;/span&gt;
    &lt;span class="c"&gt;&amp;lt;!-- Usage instructions: https://github.com/squizlabs/PHP_CodeSniffer/wiki/Usage --&amp;gt;&lt;/span&gt;
    &lt;span class="c"&gt;&amp;lt;!-- Annotated ruleset: https://github.com/squizlabs/PHP_CodeSniffer/wiki/Annotated-ruleset.xml --&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;arg&lt;/span&gt; &lt;span class="na"&gt;value=&lt;/span&gt;&lt;span class="s"&gt;"sp"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt; &lt;span class="c"&gt;&amp;lt;!-- Show sniff and progress --&amp;gt;&lt;/span&gt;
    &lt;span class="c"&gt;&amp;lt;!-- &amp;lt;arg name="basepath" value="./"/&amp;gt; --&amp;gt;&lt;/span&gt;
    &lt;span class="c"&gt;&amp;lt;!-- Strip the file paths down to the relevant bit --&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;arg&lt;/span&gt; &lt;span class="na"&gt;name=&lt;/span&gt;&lt;span class="s"&gt;"colors"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;arg&lt;/span&gt; &lt;span class="na"&gt;name=&lt;/span&gt;&lt;span class="s"&gt;"extensions"&lt;/span&gt; &lt;span class="na"&gt;value=&lt;/span&gt;&lt;span class="s"&gt;"php"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;arg&lt;/span&gt; &lt;span class="na"&gt;name=&lt;/span&gt;&lt;span class="s"&gt;"parallel"&lt;/span&gt; &lt;span class="na"&gt;value=&lt;/span&gt;&lt;span class="s"&gt;"12"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;&lt;span class="c"&gt;&amp;lt;!-- Enables parallel processing when available for faster results. --&amp;gt;&lt;/span&gt;

    &lt;span class="c"&gt;&amp;lt;!-- Rules: Check PHP version compatibility --&amp;gt;&lt;/span&gt;
    &lt;span class="c"&gt;&amp;lt;!-- https://github.com/PHPCompatibility/PHPCompatibility#sniffing-your-code-for-compatibility-with-specific-php-versions --&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;config&lt;/span&gt; &lt;span class="na"&gt;name=&lt;/span&gt;&lt;span class="s"&gt;"testVersion"&lt;/span&gt; &lt;span class="na"&gt;value=&lt;/span&gt;&lt;span class="s"&gt;"7.4-"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;

    &lt;span class="c"&gt;&amp;lt;!-- Rules: Check PHP version compatibility--&amp;gt;&lt;/span&gt;
    &lt;span class="c"&gt;&amp;lt;!-- https://github.com/PHPCompatibility/PHPCompatibilityWP --&amp;gt;&lt;/span&gt;
    &lt;span class="c"&gt;&amp;lt;!-- &amp;lt;rule ref="PHPCompatibilityWP"/&amp;gt; --&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;rule&lt;/span&gt; &lt;span class="na"&gt;ref=&lt;/span&gt;&lt;span class="s"&gt;"WordPress"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;

    &lt;span class="c"&gt;&amp;lt;!-- Rules: WordPress Coding Standards --&amp;gt;&lt;/span&gt;
    &lt;span class="c"&gt;&amp;lt;!-- https://github.com/WordPress-Coding-Standards/WordPress-Coding-Standards --&amp;gt;&lt;/span&gt;
    &lt;span class="c"&gt;&amp;lt;!-- https://github.com/WordPress-Coding-Standards/WordPress-Coding-Standards/wiki/Customizable-sniff-properties --&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;config&lt;/span&gt; &lt;span class="na"&gt;name=&lt;/span&gt;&lt;span class="s"&gt;"minimum_supported_wp_version"&lt;/span&gt; &lt;span class="na"&gt;value=&lt;/span&gt;&lt;span class="s"&gt;"5.4"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;rule&lt;/span&gt; &lt;span class="na"&gt;ref=&lt;/span&gt;&lt;span class="s"&gt;"WordPress-Extra"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;rule&lt;/span&gt; &lt;span class="na"&gt;ref=&lt;/span&gt;&lt;span class="s"&gt;"WordPress"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;exclude&lt;/span&gt; &lt;span class="na"&gt;name=&lt;/span&gt;&lt;span class="s"&gt;"Generic.WhiteSpace.DisallowSpaceIndent"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;/rule&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;rule&lt;/span&gt; &lt;span class="na"&gt;ref=&lt;/span&gt;&lt;span class="s"&gt;"WordPress.WP.I18n"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;properties&amp;gt;&lt;/span&gt;
            &lt;span class="c"&gt;&amp;lt;!-- Value: replace the text domain used. --&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;property&lt;/span&gt; &lt;span class="na"&gt;name=&lt;/span&gt;&lt;span class="s"&gt;"text_domain"&lt;/span&gt; &lt;span class="na"&gt;type=&lt;/span&gt;&lt;span class="s"&gt;"array"&lt;/span&gt; &lt;span class="na"&gt;value=&lt;/span&gt;&lt;span class="s"&gt;"plugin-text-domain"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;/properties&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;/rule&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;rule&lt;/span&gt; &lt;span class="na"&gt;ref=&lt;/span&gt;&lt;span class="s"&gt;"WordPress.WhiteSpace.ControlStructureSpacing"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;properties&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;property&lt;/span&gt; &lt;span class="na"&gt;name=&lt;/span&gt;&lt;span class="s"&gt;"blank_line_check"&lt;/span&gt; &lt;span class="na"&gt;value=&lt;/span&gt;&lt;span class="s"&gt;"true"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;/properties&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;/rule&amp;gt;&lt;/span&gt;

    &lt;span class="nt"&gt;&amp;lt;rule&lt;/span&gt; &lt;span class="na"&gt;ref=&lt;/span&gt;&lt;span class="s"&gt;"Squiz.Commenting"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;severity&amp;gt;&lt;/span&gt;0&lt;span class="nt"&gt;&amp;lt;/severity&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;/rule&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;rule&lt;/span&gt; &lt;span class="na"&gt;ref=&lt;/span&gt;&lt;span class="s"&gt;"PEAR.Functions.FunctionCallSignature.MultipleArguments"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;severity&amp;gt;&lt;/span&gt;0&lt;span class="nt"&gt;&amp;lt;/severity&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;/rule&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;rule&lt;/span&gt; &lt;span class="na"&gt;ref=&lt;/span&gt;&lt;span class="s"&gt;"Generic.Commenting.DocComment.SpacingBeforeTags"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;severity&amp;gt;&lt;/span&gt;0&lt;span class="nt"&gt;&amp;lt;/severity&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;/rule&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;rule&lt;/span&gt; &lt;span class="na"&gt;ref=&lt;/span&gt;&lt;span class="s"&gt;"WordPress.Files.FileName"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;severity&amp;gt;&lt;/span&gt;0&lt;span class="nt"&gt;&amp;lt;/severity&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;/rule&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;rule&lt;/span&gt; &lt;span class="na"&gt;ref=&lt;/span&gt;&lt;span class="s"&gt;"WordPress.PHP.DevelopmentFunctions"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;severity&amp;gt;&lt;/span&gt;0&lt;span class="nt"&gt;&amp;lt;/severity&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;/rule&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;rule&lt;/span&gt; &lt;span class="na"&gt;ref=&lt;/span&gt;&lt;span class="s"&gt;"WordPress.NamingConventions.ValidFunctionName.MethodNameInvalid"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;severity&amp;gt;&lt;/span&gt;0&lt;span class="nt"&gt;&amp;lt;/severity&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;/rule&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;rule&lt;/span&gt; &lt;span class="na"&gt;ref=&lt;/span&gt;&lt;span class="s"&gt;"WordPress.Arrays.MultipleStatementAlignment.DoubleArrowNotAligned"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;severity&amp;gt;&lt;/span&gt;0&lt;span class="nt"&gt;&amp;lt;/severity&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;/rule&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;rule&lt;/span&gt; &lt;span class="na"&gt;ref=&lt;/span&gt;&lt;span class="s"&gt;"Generic.Formatting.MultipleStatementAlignment.NotSameWarning"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;severity&amp;gt;&lt;/span&gt;0&lt;span class="nt"&gt;&amp;lt;/severity&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;/rule&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;rule&lt;/span&gt; &lt;span class="na"&gt;ref=&lt;/span&gt;&lt;span class="s"&gt;"Generic.Commenting.DocComment.MissingShort"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;severity&amp;gt;&lt;/span&gt;0&lt;span class="nt"&gt;&amp;lt;/severity&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;/rule&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;rule&lt;/span&gt; &lt;span class="na"&gt;ref=&lt;/span&gt;&lt;span class="s"&gt;"WordPress.PHP.YodaConditions.NotYoda"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;severity&amp;gt;&lt;/span&gt;0&lt;span class="nt"&gt;&amp;lt;/severity&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;/rule&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;rule&lt;/span&gt; &lt;span class="na"&gt;ref=&lt;/span&gt;&lt;span class="s"&gt;"Generic.Functions.OpeningFunctionBraceKernighanRitchie.ContentAfterBrace"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;severity&amp;gt;&lt;/span&gt;0&lt;span class="nt"&gt;&amp;lt;/severity&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;/rule&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;rule&lt;/span&gt; &lt;span class="na"&gt;ref=&lt;/span&gt;&lt;span class="s"&gt;"WordPress.WhiteSpace.ControlStructureSpacing.NoSpaceAfterCloseParenthesis"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;severity&amp;gt;&lt;/span&gt;0&lt;span class="nt"&gt;&amp;lt;/severity&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;/rule&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;rule&lt;/span&gt; &lt;span class="na"&gt;ref=&lt;/span&gt;&lt;span class="s"&gt;"WordPress.Arrays.ArrayDeclarationSpacing.AssociativeArrayFound"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;type&amp;gt;&lt;/span&gt;warning&lt;span class="nt"&gt;&amp;lt;/type&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;/rule&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;rule&lt;/span&gt; &lt;span class="na"&gt;ref=&lt;/span&gt;&lt;span class="s"&gt;"WordPress.DB.DirectDatabaseQuery.NoCaching"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;severity&amp;gt;&lt;/span&gt;0&lt;span class="nt"&gt;&amp;lt;/severity&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;/rule&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;rule&lt;/span&gt; &lt;span class="na"&gt;ref=&lt;/span&gt;&lt;span class="s"&gt;"WordPress.PHP.StrictInArray.MissingTrueStrict"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;type&amp;gt;&lt;/span&gt;error&lt;span class="nt"&gt;&amp;lt;/type&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;/rule&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;rule&lt;/span&gt; &lt;span class="na"&gt;ref=&lt;/span&gt;&lt;span class="s"&gt;"Universal.Operators.StrictComparisons"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;type&amp;gt;&lt;/span&gt;error&lt;span class="nt"&gt;&amp;lt;/type&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;/rule&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;rule&lt;/span&gt; &lt;span class="na"&gt;ref=&lt;/span&gt;&lt;span class="s"&gt;"WordPress.DB.DirectDatabaseQuery.DirectQuery"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;severity&amp;gt;&lt;/span&gt;0&lt;span class="nt"&gt;&amp;lt;/severity&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;/rule&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;rule&lt;/span&gt; &lt;span class="na"&gt;ref=&lt;/span&gt;&lt;span class="s"&gt;"WordPress.DB.PreparedSQL.NotPrepared"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;type&amp;gt;&lt;/span&gt;warning&lt;span class="nt"&gt;&amp;lt;/type&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;/rule&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;rule&lt;/span&gt; &lt;span class="na"&gt;ref=&lt;/span&gt;&lt;span class="s"&gt;"WordPress.Security.EscapeOutput.OutputNotEscaped"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;severity&amp;gt;&lt;/span&gt;0&lt;span class="nt"&gt;&amp;lt;/severity&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;/rule&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;rule&lt;/span&gt; &lt;span class="na"&gt;ref=&lt;/span&gt;&lt;span class="s"&gt;"WordPress.PHP.DevelopmentFunctions.error_log_var_export"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;severity&amp;gt;&lt;/span&gt;0&lt;span class="nt"&gt;&amp;lt;/severity&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;/rule&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;rule&lt;/span&gt; &lt;span class="na"&gt;ref=&lt;/span&gt;&lt;span class="s"&gt;"Universal.Arrays.DisallowShortArraySyntax"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;severity&amp;gt;&lt;/span&gt;0&lt;span class="nt"&gt;&amp;lt;/severity&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;/rule&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;rule&lt;/span&gt; &lt;span class="na"&gt;ref=&lt;/span&gt;&lt;span class="s"&gt;"WordPress.Security.ValidatedSanitizedInput"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;properties&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;property&lt;/span&gt; &lt;span class="na"&gt;name=&lt;/span&gt;&lt;span class="s"&gt;"customSanitizingFunctions"&lt;/span&gt; &lt;span class="na"&gt;type=&lt;/span&gt;&lt;span class="s"&gt;"array"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
                &lt;span class="nt"&gt;&amp;lt;element&lt;/span&gt; &lt;span class="na"&gt;value=&lt;/span&gt;&lt;span class="s"&gt;"wc_clean"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;/property&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;/properties&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;/rule&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;rule&lt;/span&gt; &lt;span class="na"&gt;ref=&lt;/span&gt;&lt;span class="s"&gt;"Squiz.PHP.CommentedOutCode.Found"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;severity&amp;gt;&lt;/span&gt;0&lt;span class="nt"&gt;&amp;lt;/severity&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;/rule&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/ruleset&amp;gt;&lt;/span&gt;


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;blockquote&gt;
&lt;p&gt;Do not forget to replace the &lt;code&gt;plugin-text-domain&lt;/code&gt;.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The &lt;code&gt;phpcs.xml&lt;/code&gt; file has exactly the same format as a normal &lt;a href="https://github.com/squizlabs/PHP_CodeSniffer/wiki/Annotated-Ruleset" rel="noopener noreferrer"&gt;ruleset.xml&lt;/a&gt; file, so all the same options are available in it.&lt;/p&gt;

&lt;p&gt;Sample plugin folder structure as follows:&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fcg0ve9mfxgyar9dudgri.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fcg0ve9mfxgyar9dudgri.png" alt="Plugin folder structure"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Youtube Video: &lt;a href="https://youtu.be/bKFQy3psNIo" rel="noopener noreferrer"&gt;https://youtu.be/bKFQy3psNIo&lt;/a&gt;&lt;/p&gt;

</description>
      <category>vscode</category>
      <category>wordpress</category>
      <category>codingstandards</category>
      <category>plugins</category>
    </item>
  </channel>
</rss>
