Mobile shader fresnel

Hi,
I’m trying to create for a VR game a mobile shader (as they are optimized). The challenge is to take the built-in BumpSpecular one and and tweak it to multiply the reflection by a “fresnel” ramp.
I don’t know what’s wrong, I’m not a shader developer but I need it to process on a Single Pass VR.

The commented lines are which break the shader.
Anyone can help me? Thanks on advance,

Shader "Reflect-BumpSpec" {
Properties {
    _Color ("Main Color", Color) = (1,1,1,1)
    _SpecColor ("Specular Color", Color) = (0.5,0.5,0.5,1)
    _Shininess ("Shininess", Range (0.01, 1)) = 0.078125
    _ReflectColor ("Reflection Color", Color) = (1,1,1,0.5)
    _Fresnel ("Fresnel", Range(0.0,8.0)) = 2.0
    _MainTex ("Base (RGB) RefStrGloss (A)", 2D) = "white" {}
    _Cube ("Reflection Cubemap", Cube) = "" {}
    _BumpMap ("Normalmap", 2D) = "bump" {}
}

SubShader {
    Tags { "RenderType"="Opaque" }
    LOD 400
CGPROGRAM
#pragma surface surf BlinnPhong
#pragma target 3.0

sampler2D _MainTex;
sampler2D _BumpMap;
samplerCUBE _Cube;

fixed4 _Color;
fixed4 _ReflectColor;
half _Shininess;

struct Input {
    float2 uv_MainTex;
    float2 uv_BumpMap;
    float3 worldRefl;
    float3 viewDir;
    INTERNAL_DATA
};

void surf (Input IN, inout SurfaceOutput o) {
    fixed4 tex = tex2D(_MainTex, IN.uv_MainTex);
    fixed4 c = tex * _Color;
    o.Albedo = c.rgb;

    o.Gloss = tex.a;
    o.Specular = _Shininess;

    o.Normal = UnpackNormal(tex2D(_BumpMap, IN.uv_BumpMap));

    half rim = 1-saturate(dot(normalize(IN.viewDir), o.Normal));

    float3 worldRefl = WorldReflectionVector (IN, o.Normal);
    fixed4 reflcol = texCUBE (_Cube, worldRefl);
    half refl_lum = _ReflectColor.r * 0.3 + _ReflectColor.g * 0.59 + _ReflectColor.b * 0.11;

    //reflcol *= (_Fresnel * pow(rim,refl_lum));
    //reflcol *= _RimPower;
    reflcol *= tex.a;
   
    o.Emission = reflcol.rgb * _ReflectColor.rgb;
    o.Alpha = reflcol.a * _ReflectColor.a;
}
ENDCG
}

FallBack "Legacy Shaders/Reflective/Bumped Diffuse"
}

You haven’t declared your variables. line 27 add:

float _Fresnel;
float _RimPower;

You also don’t have _RimPower declared in your properties block so you won’t get any input options in the inspector.