Get lighting properties of standard shader
Hello I'am making a custom shader for the purpose of making Cutteable objects with a plane, it works but I'am seeing a difference in how the lighting perfoms on the object if I changed it between standard and custom. Like in the image: 
So, how can I replicate the lighting properties of the standard shader so that its equal to the custom shader? Here is the code of my shader:
 Shader "Holistic/StandardCut" {
 
  Properties {
         _OuterTex ("Albedo", 2D) = "white" {}
         _NormMap("Normal Map", 2D) = "normal" {}
         _Metallic ("Metallic", 2D) = "White" {}
         _ColorEmission("Emission Color", Color) = (0,0,0,1)
         [Gamma] _Smoothness("Smoothness", Range(0, 1)) = 0
         [Gamma] _Occlusion("Occlusion", Range(0,1)) = 0
         
         _Color ("Inner Color", Color) = (1,1,1,1)
         [Toggle] _Cutted ("Cutteable", Float) = 0
         [HideInInspector]_PlaneNormal("PlaneNormal",Vector) = (0,1,0,0)
         [HideInInspector]_PlanePosition("PlanePosition",Vector) = (0,0,0,1)
 
     }
  
     SubShader {
         Tags { "Queue"="Transparent" }
 
  
         //  PASS 1
         CGPROGRAM
         #pragma surface surf Standard
  
         struct Input {
             float3 worldPos;
             float2 uv_OuterTex;
         };
  
         sampler2D _OuterTex;
         sampler2D _NormMap;
         sampler2D _Metallic;
         half3 _ColorEmission;        
         fixed _Smoothness;
         fixed _Occlusion;
         fixed3 _PlaneNormal;
         fixed3 _PlanePosition;
         fixed _Cutted;
  
         void surf(Input IN, inout SurfaceOutputStandard o)
         {
             clip(dot((IN.worldPos.xyz - _PlanePosition) * _Cutted, _PlaneNormal));
             o.Albedo = tex2D(_OuterTex, IN.uv_OuterTex).rgb;
             o.Normal = tex2D(_NormMap, IN.uv_OuterTex);
             o.Emission = _ColorEmission.rgb;
             o.Metallic = tex2D(_Metallic, IN.uv_OuterTex).r;
             o.Smoothness = _Smoothness;
             o.Occlusion = _Occlusion;
         }
  
         ENDCG
  
         //  PASS 2
         Pass {
             
             ZTest Less
             Cull front
             ZWrite On
  
             CGPROGRAM
             #pragma vertex vert
             #pragma fragment frag
             #include "UnityCG.cginc"
 
             struct appdata
             {
                 float4 vertex : POSITION;
                 float2 texcoord : TEXCOORD0;
             };
  
             struct v2f {
                 float4 pos : SV_POSITION;
                 float2 uv : TEXCOORD0;
                 float4 worldPos : TEXCOORD1;
             };
 
             float _Val;
             fixed4 _Color;
 
             v2f vert(appdata v)
             {
                 v2f o;
                 o.uv = v.texcoord;
                 o.pos = UnityObjectToClipPos(v.vertex);
                 o.worldPos = mul(unity_ObjectToWorld, v.vertex);
                 return o;
             }
              
              sampler2D _SectionTex;
              fixed3 _PlaneNormal;
              fixed3 _PlanePosition;
              float _Cutted;
 
             fixed4 frag(v2f i) : SV_Target {
                 clip(dot((i.worldPos.xyz - _PlanePosition) * _Cutted, _PlaneNormal));
                 return _Color;
             }
  
             ENDCG
         }
         
     }
     //FallBack "VertexLit"
 }
 
               
                 
                difference.png 
                (462.9 kB) 
               
 
              
               Comment
              
 
               
              Your answer