chargeafter-rnd_chargeafter-plugin-for-nopcommerce/Nop.Plugin.Payments.ChargeAfter/Areas/Admin/Views/Product.cshtml
@model ChargeAfterProductAttributeModel

@{
    const string hideChargeAfterBlockAttributeName = "ProductPage.HideChargeAfterBlock";
    
    var customer = await workContext.GetCurrentCustomerAsync();
    var hideChargeAfterBlock = await genericAttributeService.GetAttributeAsync<bool>(customer, hideChargeAfterBlockAttributeName);
}

<nop-card asp-name="product-non-leasable"
           asp-icon="fa fa-flag"
           asp-title="@T("Plugins.Payments.ChargeAfter.Header.ProductAttr")"
           asp-hide-block-attribute-name="@hideChargeAfterBlockAttributeName"
           asp-hide="@hideChargeAfterBlock"
           asp-advanced="false">
    <div class="card-body">
        @if (Model.ProductId > 0)
        {
            <div class="form-group row">
                <div class="col-md-3">
                    <nop-label asp-for="CaNonLeasable" />
                </div>
                <div class="col-md-9">
                    <nop-editor asp-for="CaNonLeasable" />
                    <span asp-validation-for="CaNonLeasable"></span>
                </div>
            </div>
            <div class="form-group row">
                <div class="col-md-3">
                    <nop-label asp-for="CaWarranty" />
                </div>
                <div class="col-md-9">
                    <nop-editor asp-for="CaWarranty" />
                    <span asp-validation-for="CaWarranty"></span>
                </div>
            </div>
        }
        else
        {
            <div class="card card-default">
                <div class="card-body">
                    @T("Plugins.Payments.ChargeAfter.Fields.ProductAttr.SaveBeforeEdit")
                </div>
            </div>
        }
    </div>
</nop-card>