<?xml version="1.0"?>
<ruleset name="WordPress Coding Standards">
    <description>WooCommerce extension PHP_CodeSniffer ruleset.</description>

    <!-- Exclude paths -->
    <exclude-pattern>tests/</exclude-pattern>
    <exclude-pattern>dist/</exclude-pattern>
    <exclude-pattern>woo-includes/woo-functions.php</exclude-pattern>
    <exclude-pattern>woo-includes/class-wc-dependencies.php</exclude-pattern>
    <exclude-pattern>*/node_modules/*</exclude-pattern>
    <exclude-pattern>*/vendor/*</exclude-pattern>

    <!-- Configs -->
    <config name="minimum_supported_wp_version" value="4.7" />
    <config name="testVersion" value="7.2-" />

    <!-- Rules -->
    <rule ref="WordPress-Extra">
        <exclude name="Generic.Commenting.DocComment.SpacingAfter" />
        <exclude name="Generic.Files.LineEndings.InvalidEOLChar" />
        <exclude name="Generic.Functions.FunctionCallArgumentSpacing.SpaceBeforeComma" />
        <exclude name="PEAR.Functions.FunctionCallSignature" />
        <exclude name="Squiz.Commenting" />
        <exclude name="Squiz.PHP.DisallowSizeFunctionsInLoops.Found" />
        <exclude name="Squiz.WhiteSpace" />
        <exclude name="WordPress.Arrays" />
        <exclude name="WordPress.Files.FileName" />
        <exclude name="WordPress.NamingConventions" />
        <exclude name="WordPress.Security.ValidatedSanitizedInput.MissingUnslash" />
        <exclude name="WordPress.WP.I18n.NonSingularStringLiteralText" />
        <exclude name="WordPress.WhiteSpace" />
    </rule>

    <rule ref="WooCommerce-Core">
        <exclude name="Core.Commenting.CommentTags.AuthorTag" />
        <exclude name="WordPress.PHP.DontExtract" />
        <exclude name="Generic.Arrays.DisallowShortArraySyntax" />
        <exclude name="Generic.WhiteSpace.ScopeIndent.Incorrect" />
    </rule>

    <rule ref="WordPress.Security.EscapeOutput">
        <properties>
            <property name="customEscapingFunctions" type="array" value="cfw_esc_attr__,cfw_esc_html__,cfw_esc_attr_e,cfw_esc_html_e,cfw_esc_attr_x,cfw_esc_html_x" />
        </properties>
    </rule>

    <rule ref="PHPCompatibility">
        <exclude-pattern>tests/</exclude-pattern>
    </rule>
</ruleset>