如何删除审核字段的必填项(昵称,审核和审核摘要)

时间:2014-09-26 19:13:38

标签: magento

如何在Magento中删除审核字段的必填项(昵称,审核和审核摘要)。我找到了一个答案,但它只适用于管理员面板: Magento Admin Add/Edit Review -> removing Summary of Review Field required validation 想在商店视图中删除它,以便客户只需点击评级并发送它。

THX

2 个答案:

答案 0 :(得分:2)

(我正在使用Magento2)

必须更改两个地方代码:

/var/www/magento2/app/code/Magento/Review/Model/Review.php
一旦打开此文件,请节省一些时间并按ctrl + F并键入短语validate。应该带你到这里......

public function validate()
    {
    $errors = [];

    // if (!\Zend_Validate::is($this->getTitle(), 'NotEmpty')) {
    //     $errors[] = __('Please enter a review summary.');
    // }

    if (!\Zend_Validate::is($this->getNickname(), 'NotEmpty')) {
        $errors[] = __('Please enter a nickname.');
    }

    // if (!\Zend_Validate::is($this->getDetail(), 'NotEmpty')) {
    //     $errors[] = __('Please enter a review.');
    // }

    if (empty($errors)) {
        return true;
    }
    return $errors;
}   

您可能会注意到3个if语句中有2个被注释掉了。我这样做是为了删除仅对摘要和审核的要求。我想将Nickname保留为必填字段,这样就不会被注释掉。

接下来,您需要将此文件从默认的Magento Review目录复制到本地主题目录...

/var/www/magento2/app/code/Magento/Review/view/frontend/templates/form.phtml

确保从Review模块中获取form.phtml。其他模块中还有其他几个form.phtml文件。

将文件复制到的位置示例:
/var/www/magento2/app/design/frontend/Danny/orange/Magento_Review/templates/form.phtml

将此复制到您自己的本地目录后,您可以继续进行更改:

<div class="field review-field-nickname required">
        <label for="nickname_field" class="label"><span><?php echo $block->escapeHtml(__('Nickname')) ?></span></label>
        <div class="control">
            <input type="text" name="nickname" id="nickname_field" class="input-text" data-validate="{required:true}" data-bind="value: nickname()" />
        </div>
    </div>
    <div class="field review-field-summary">
        <label for="summary_field" class="label"><span><?php echo $block->escapeHtml(__('Summary')) ?></span></label>
        <div class="control">
            <input type="text" name="title" id="summary_field" class="input-text" data-validate="{required:false}" data-bind="value: review().title" />
        </div>
    </div>
    <div class="field review-field-text">
        <label for="review_field" class="label"><span><?php echo $block->escapeHtml(__('Review')) ?></span></label>
        <div class="control">
            <textarea name="detail" id="review_field" cols="5" rows="3" data-validate="{required:false}" data-bind="value: review().detail"></textarea>
        </div>
    </div>

在上面的代码片段中,您会注意到第一个块“Nickname”已按原样保留。要求保留在那里。

其他两个框已被修改以删除该要求。我必须做的唯一更改是删除“required”类并将data-validate =“{required:false}”从true更改为false。

希望这有帮助!

答案 1 :(得分:-1)

只需转到:

app >> design >> frontend >> {{theme package}} >> {{theme}} >> template >> review >> form.phtml

并从类中删除 必需条目 ,您希望这些字段是必填字段。