landing-pages.yotpo.com
Open in
urlscan Pro
2a02:26f0:6c00:28e::1d72
Public Scan
Submitted URL: https://em.yotpo.com/ss/c/0sDU4qQafbMVNkRMJlQd3rxxDZw69UoNwQ8gJxkm8xIGsrqjaWMhBWvr7PeS4LQK-OGtWDSugQBto-9D4RApP4dhYjH...
Effective URL: https://landing-pages.yotpo.com/base/
Submission: On February 22 via api from US — Scanned from DE
Effective URL: https://landing-pages.yotpo.com/base/
Submission: On February 22 via api from US — Scanned from DE
Form analysis
1 forms found in the DOM<form ng-submit="submitForm(true)" class="ui form ng-pristine ng-valid" ng-class="{ disabled: showReviewBody && isSubmitClicked }">
<!-- ngIf: showReviewBody -->
<div class="review-header ng-scope ng-isolate-scope" ng-if="showReviewBody" star-color="E7721B" star-rating-value="baseFields.reviewScore" show-validation-errors="!cleanForm" show-product-image="showProductImage"
product-image-url="//cdn-yotpo-images-production.yotpo.com/Product/266231148/194201872/thumb.jpg?1631122722" product-name="Genuine Ford Hitch Kit - Gooseneck - 27,500 Lbs. GTWR">
<div class="header-container">
<div ng-show="showProductImage" class="product-img-container">
<!-- ngIf: productImageUrl --><img ng-if="productImageUrl" ng-src="//cdn-yotpo-images-production.yotpo.com/Product/266231148/194201872/thumb.jpg?1631122722" class="product-img ng-scope" alt="Product image"
src="//cdn-yotpo-images-production.yotpo.com/Product/266231148/194201872/thumb.jpg?1631122722" style=""><!-- end ngIf: productImageUrl -->
<!-- ngIf: !productImageUrl -->
</div>
<div class="stars-container">
<div class="product-name" style="display: -webkit-box;">
<span ng-bind-html="productName" class="ng-binding">Genuine Ford Hitch Kit - Gooseneck - 27,500 Lbs. GTWR</span>
</div>
<div class="stars">
<ul class="stars ng-isolate-scope" ng-class="{'error': !ratingValue && showError}" rating-value="starRatingValue" star-color="E7721B" show-error="showError(starRatingValue)">
<!-- ngRepeat: index in [1,2,3,4,5] -->
<li ng-repeat="index in [1,2,3,4,5]" ng-click="select(index)" aria-label="1 Star Rating" class="ng-scope" style="">
<!-- ngIf: ratingValue && index <= ratingValue --><svg class="full-star ng-scope" ng-if="ratingValue && index <= ratingValue" xmlns="http://www.w3.org/2000/svg" width="24" height="23" viewBox="0 0 24 23">
<path fill="#E7721B" fill-rule="evenodd"
d="M24 8.68c0 .208-.125.433-.375.678l-5.236 4.997 1.24 7.057c.01.066.015.16.015.282 0 .198-.05.365-.151.501a.513.513 0 0 1-.44.205c-.183 0-.375-.056-.577-.17L12 18.9l-6.476 3.33c-.212.114-.404.17-.577.17-.202 0-.353-.068-.454-.205a.819.819 0 0 1-.152-.5c0-.057.01-.151.03-.283l1.24-7.057L.36 9.358C.12 9.104 0 8.878 0 8.681c0-.349.27-.565.808-.65l7.24-1.03L11.293.579C11.476.193 11.712 0 12 0s.524.193.707.579L15.952 7l7.24 1.03c.539.085.808.301.808.65z">
</path>
</svg><!-- end ngIf: ratingValue && index <= ratingValue -->
<!-- ngIf: (ratingValue && index > ratingValue) || (!ratingValue && !showError) -->
<!-- ngIf: showError && !ratingValue -->
</li><!-- end ngRepeat: index in [1,2,3,4,5] -->
<li ng-repeat="index in [1,2,3,4,5]" ng-click="select(index)" aria-label="2 Star Rating" class="ng-scope">
<!-- ngIf: ratingValue && index <= ratingValue -->
<!-- ngIf: (ratingValue && index > ratingValue) || (!ratingValue && !showError) --><svg class="empty-star ng-scope" ng-if="(ratingValue && index > ratingValue) || (!ratingValue && !showError)"
xmlns="http://www.w3.org/2000/svg" width="26" height="24" viewBox="0 0 26 24">
<path fill="#FFFFFF" fill-rule="evenodd" stroke="#7A85AC"
d="M25 9.68c0 .208-.125.433-.375.678l-5.236 4.997 1.24 7.057c.01.066.015.16.015.282 0 .198-.05.365-.151.501a.513.513 0 0 1-.44.205c-.183 0-.375-.056-.577-.17L13 19.9l-6.476 3.33c-.212.114-.404.17-.577.17-.202 0-.353-.068-.454-.205a.819.819 0 0 1-.152-.5c0-.057.01-.151.03-.283l1.24-7.057-5.25-4.997C1.12 10.104 1 9.878 1 9.681c0-.349.27-.565.808-.65l7.24-1.03 3.245-6.422C12.476 1.193 12.712 1 13 1s.524.193.707.579L16.952 8l7.24 1.03c.539.085.808.301.808.65z">
</path>
</svg><!-- end ngIf: (ratingValue && index > ratingValue) || (!ratingValue && !showError) -->
<!-- ngIf: showError && !ratingValue -->
</li><!-- end ngRepeat: index in [1,2,3,4,5] -->
<li ng-repeat="index in [1,2,3,4,5]" ng-click="select(index)" aria-label="3 Star Rating" class="ng-scope">
<!-- ngIf: ratingValue && index <= ratingValue -->
<!-- ngIf: (ratingValue && index > ratingValue) || (!ratingValue && !showError) --><svg class="empty-star ng-scope" ng-if="(ratingValue && index > ratingValue) || (!ratingValue && !showError)"
xmlns="http://www.w3.org/2000/svg" width="26" height="24" viewBox="0 0 26 24">
<path fill="#FFFFFF" fill-rule="evenodd" stroke="#7A85AC"
d="M25 9.68c0 .208-.125.433-.375.678l-5.236 4.997 1.24 7.057c.01.066.015.16.015.282 0 .198-.05.365-.151.501a.513.513 0 0 1-.44.205c-.183 0-.375-.056-.577-.17L13 19.9l-6.476 3.33c-.212.114-.404.17-.577.17-.202 0-.353-.068-.454-.205a.819.819 0 0 1-.152-.5c0-.057.01-.151.03-.283l1.24-7.057-5.25-4.997C1.12 10.104 1 9.878 1 9.681c0-.349.27-.565.808-.65l7.24-1.03 3.245-6.422C12.476 1.193 12.712 1 13 1s.524.193.707.579L16.952 8l7.24 1.03c.539.085.808.301.808.65z">
</path>
</svg><!-- end ngIf: (ratingValue && index > ratingValue) || (!ratingValue && !showError) -->
<!-- ngIf: showError && !ratingValue -->
</li><!-- end ngRepeat: index in [1,2,3,4,5] -->
<li ng-repeat="index in [1,2,3,4,5]" ng-click="select(index)" aria-label="4 Star Rating" class="ng-scope">
<!-- ngIf: ratingValue && index <= ratingValue -->
<!-- ngIf: (ratingValue && index > ratingValue) || (!ratingValue && !showError) --><svg class="empty-star ng-scope" ng-if="(ratingValue && index > ratingValue) || (!ratingValue && !showError)"
xmlns="http://www.w3.org/2000/svg" width="26" height="24" viewBox="0 0 26 24">
<path fill="#FFFFFF" fill-rule="evenodd" stroke="#7A85AC"
d="M25 9.68c0 .208-.125.433-.375.678l-5.236 4.997 1.24 7.057c.01.066.015.16.015.282 0 .198-.05.365-.151.501a.513.513 0 0 1-.44.205c-.183 0-.375-.056-.577-.17L13 19.9l-6.476 3.33c-.212.114-.404.17-.577.17-.202 0-.353-.068-.454-.205a.819.819 0 0 1-.152-.5c0-.057.01-.151.03-.283l1.24-7.057-5.25-4.997C1.12 10.104 1 9.878 1 9.681c0-.349.27-.565.808-.65l7.24-1.03 3.245-6.422C12.476 1.193 12.712 1 13 1s.524.193.707.579L16.952 8l7.24 1.03c.539.085.808.301.808.65z">
</path>
</svg><!-- end ngIf: (ratingValue && index > ratingValue) || (!ratingValue && !showError) -->
<!-- ngIf: showError && !ratingValue -->
</li><!-- end ngRepeat: index in [1,2,3,4,5] -->
<li ng-repeat="index in [1,2,3,4,5]" ng-click="select(index)" aria-label="5 Star Rating" class="ng-scope">
<!-- ngIf: ratingValue && index <= ratingValue -->
<!-- ngIf: (ratingValue && index > ratingValue) || (!ratingValue && !showError) --><svg class="empty-star ng-scope" ng-if="(ratingValue && index > ratingValue) || (!ratingValue && !showError)"
xmlns="http://www.w3.org/2000/svg" width="26" height="24" viewBox="0 0 26 24">
<path fill="#FFFFFF" fill-rule="evenodd" stroke="#7A85AC"
d="M25 9.68c0 .208-.125.433-.375.678l-5.236 4.997 1.24 7.057c.01.066.015.16.015.282 0 .198-.05.365-.151.501a.513.513 0 0 1-.44.205c-.183 0-.375-.056-.577-.17L13 19.9l-6.476 3.33c-.212.114-.404.17-.577.17-.202 0-.353-.068-.454-.205a.819.819 0 0 1-.152-.5c0-.057.01-.151.03-.283l1.24-7.057-5.25-4.997C1.12 10.104 1 9.878 1 9.681c0-.349.27-.565.808-.65l7.24-1.03 3.245-6.422C12.476 1.193 12.712 1 13 1s.524.193.707.579L16.952 8l7.24 1.03c.539.085.808.301.808.65z">
</path>
</svg><!-- end ngIf: (ratingValue && index > ratingValue) || (!ratingValue && !showError) -->
<!-- ngIf: showError && !ratingValue -->
</li><!-- end ngRepeat: index in [1,2,3,4,5] -->
</ul>
<span class="rate-error ng-binding ng-hide" ng-show="showError(starRatingValue)" ng-bind="'REVIEW.RATING_REQUIRED' | translate" style="">Required</span>
</div>
</div>
</div>
</div><!-- end ngIf: showReviewBody -->
<!-- ngIf: showReviewBody -->
<div class="review-body ng-scope animation-done" ng-if="showReviewBody" ng-class="{collapsed: !expanded, loading: expanded && !loaded, 'animation-done': expandAnimationDone}" style="">
<div class="title-and-content">
<div class="loading-container loading ng-isolate-scope ng-hide" review-body-mode="true" ng-show="expanded && !loaded">
<!-- ngIf: !reviewBodyMode -->
<div class="ls-body-container">
<div class="left-margin line-masker"></div>
<div class="ls-body-content">
<!-- ngIf: !reviewBodyMode -->
<div>
<div class="ls-review-title"></div>
<div class="ls-review-content"></div>
<div class="fields-line-1">
<div class="line-1"></div>
<div class="line-2 line-masker"></div>
</div>
<div class="fields-line-2">
<div class="line-1"></div>
<div class="line-2 line-masker"></div>
</div>
<div class="fields-line-3">
<div class="bullet"></div>
<div class="bullet-separator line-masker"></div>
<div class="bullet"></div>
<div class="bullet-separator line-masker"></div>
<div class="bullet"></div>
<div class="bullet-separator line-masker"></div>
<div class="bullet"></div>
<div class="bullet-separator line-masker"></div>
<div class="bullet"></div>
<div class="bullet-margin-right line-masker"></div>
</div>
</div>
</div>
<div class="right-margin line-masker"></div>
</div>
</div>
<!-- ngIf: reviewTitleRequired && !suggestedTopicsEnabled -->
<div ng-if="reviewTitleRequired && !suggestedTopicsEnabled" class="review-title-container ng-scope" ng-class="{error: showError(baseFields.reviewTitle, 'title')}">
<input class="review-title ng-pristine ng-untouched ng-valid ng-empty" name="review_title" aria-label="Review title" type="text" ng-model="baseFields.reviewTitle" placeholder="Review title">
</div><!-- end ngIf: reviewTitleRequired && !suggestedTopicsEnabled -->
<div class="review-content-container" ng-class="{error: showError(baseFields.reviewContent, 'content'), 'small-spacing': suggestedTopicsEnabled}">
<!-- ngIf: !suggestedTopicsEnabled --><textarea ng-if="!suggestedTopicsEnabled" rows="4" class="review-content yotpo-textarea ng-pristine ng-untouched ng-valid ng-scope ng-empty" aria-label="Review content" type="text"
ng-model="baseFields.reviewContent" name="review_content" placeholder="* Write your review here"></textarea><!-- end ngIf: !suggestedTopicsEnabled -->
<!-- ngIf: loaded && suggestedTopicsEnabled -->
<span class="review-content-error ng-binding" ng-class="{'dynamic-position': suggestedTopicsEnabled}" ng-bind="'REVIEW.CONTENT_REQUIRED' | translate">Review content required</span>
</div>
<!-- ngIf: reviewTitleRequired && suggestedTopicsEnabled -->
</div>
<!-- ngIf: loaded && (imagesEnabled || videosEnabled) && !thankYouMode -->
<div class="media-uploader-container ng-scope ng-isolate-scope" ng-if="loaded && (imagesEnabled || videosEnabled) && !thankYouMode" images-enabled="imagesEnabled" videos-enabled="videosEnabled"
app-key="bxiViojJaXwFVMa12fRxQwsOOIdWKeDtW6jnzEn6" review-creation-token="00f138fa1f21d29c2a08175fae7ba33b6e26c8b3" images-limit="maxImagesPerReview" videos-limit="maxVideosPerReview" video-support-settings="videoSupportSettings"
videos-max-duration-in-minutes="videosMaxDurationInMinutes" notify-media-added="mediaAdded(id, error, type)" notify-update-media-status="updateMediaStatus(id, inProgress, uploaded, url, videoSubmitCallback)"
notify-media-removed="mediaRemoved(id)" demo-mode="demoMode">
<div class="media-uploader">
<div class="upload-buttons-container two-buttons" ng-class="{'two-buttons': imagesEnabled && videosEnabled}" style="">
<!-- ngIf: imagesEnabled --><button class="upload-button ng-scope two-buttons" ng-class="{'two-buttons': imagesEnabled && videosEnabled}" ng-if="imagesEnabled" ngf-select="filesAdded($files, $invalidFiles, 'image')"
ngf-accept="'image/*'" ngf-pattern="'.jpg,.jpeg,.png,.gif,.bmp'" multiple="multiple" ngf-max-size="15MB" ngf-dimensions="$width >= 400 && $height >= 400" ngf-validate-force="true" ng-disabled="getMediaSize('image') >= imagesLimit"
style="">
<svg class="upload-button-icon" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="28" height="22" viewBox="0 0 28 22">
<defs>
<path d="M24 24H0V0h24z"></path>
</defs>
<g fill="none" fill-rule="evenodd" transform="translate(2)">
<mask fill="#fff">
<use xlink:href="#a"></use>
</mask>
<path class="upload-button-icon-fill" fill-rule="nonzero"
d="M3 4V1h2v3h3v2H5v3H3V6H0V4h3zm3 6V7h3V4h7l1.83 2H21c1.1 0 2 .9 2 2v12c0 1.1-.9 2-2 2H5c-1.1 0-2-.9-2-2V10h3zm7 9c2.76 0 5-2.24 5-5s-2.24-5-5-5-5 2.24-5 5 2.24 5 5 5zm-3.2-5c0 1.77 1.43 3.2 3.2 3.2 1.77 0 3.2-1.43 3.2-3.2 0-1.77-1.43-3.2-3.2-3.2-1.77 0-3.2 1.43-3.2 3.2z"
mask="url(#b)"></path>
</g>
</svg>
<span class="upload-button-text ng-binding" ng-bind="'REVIEW.MEDIA.IMAGES.ADD_PHOTOS' | translate">Add Photos</span>
</button><!-- end ngIf: imagesEnabled -->
<!-- ngIf: videosEnabled --><button class="upload-button ng-scope two-buttons" ng-class="{'two-buttons': imagesEnabled && videosEnabled}" ng-if="videosEnabled" ngf-select="filesAdded($files, $invalidFiles, 'video')"
ngf-accept="'video/*'" ngf-pattern="'.mp4,.mov,.qt,.m4v,.flv,.f4v,.avi,.asf,.wmv,.wma,.mpg,.m1v,.m2v,.mp3,.wav,.mkv,.ogg,.ogm,.ogv,.webm,.3gp,.rm,.arf,.mxf'" multiple="multiple" ngf-max-size="2GB"
ngf-duration="$duration < videosMaxDurationInSeconds" ng-disabled="getMediaSize('video') >= videosLimit">
<svg class="upload-button-icon" xmlns="http://www.w3.org/2000/svg" width="28" height="22" viewBox="0 0 28 22">
<g fill="none" fill-rule="evenodd">
<g fill-rule="nonzero">
<path class="upload-button-icon-fill"
d="M8.783 3.925l.01-.01v.01l9.655.04c1.813 0 3.282 1.507 3.282 3.365V9.65l3.808-2.608c.508-.3 1.134-.3 1.641 0 .508.3.821.856.821 1.457V17c0 .6-.313 1.156-.82 1.457a1.59 1.59 0 0 1-1.642 0l-3.808-2.798v2.322c0 1.858-1.469 3.364-3.282 3.364l-12.166-.05C4.47 21.294 3 19.787 3 17.93V7.28C3 5.42 4.47 3.914 6.282 3.914l2.5.01zm0 0L3 9.708h2.897V6.812h2.896V3.926h-.01z">
</path>
<path fill="#FFF" d="M7.828 13.138a4.822 4.822 0 0 0 4.827 4.828 4.822 4.822 0 0 0 4.828-4.828 4.822 4.822 0 0 0-4.828-4.828 4.822 4.822 0 0 0-4.827 4.828z"></path>
<path class="upload-button-icon-fill" d="M9.759 13.138a2.893 2.893 0 0 0 2.896 2.896 2.893 2.893 0 0 0 2.897-2.896 2.893 2.893 0 0 0-2.897-2.897 2.893 2.893 0 0 0-2.896 2.897z"></path>
</g>
<path fill="#FFF" d="M2 3.948h4v6H2z"></path>
<path fill="#FFF" d="M9.069 3.052l-.07 4L3 6.947l.07-4z"></path>
<path class="upload-button-icon-fill" fill-rule="nonzero" d="M3 4V1h2v3h3v2H5v3H3V6H0V4z"></path>
</g>
</svg>
<span class="upload-button-text ng-binding" ng-bind="'REVIEW.MEDIA.VIDEOS.ADD_VIDEOS' | translate">Add Videos</span>
</button><!-- end ngIf: videosEnabled -->
</div>
<div class="media-list-container two-buttons ng-hide" ng-show="totalMediaSize() > 0" ng-class="{'two-buttons': imagesEnabled && videosEnabled}" style="">
<div class="media-list">
<!-- ngRepeat: (mediaId, media) in medias -->
</div>
</div>
</div>
<!-- ngIf: getUploadNoticeState() == 'maxSize' -->
<!-- ngIf: getUploadNoticeState() == 'imageMaxSelect' -->
<!-- ngIf: getUploadNoticeState() == 'videoMaxSelect' -->
</div><!-- end ngIf: loaded && (imagesEnabled || videosEnabled) && !thankYouMode -->
<div class="custom-fields ng-isolate-scope" fields="customFields" allow-show-errors="!cleanForm" value-updated-callback="updateCustomFieldValue(slug, value)">
<div ng-show="fields">
<!-- ngRepeat: (slug, field) in fields -->
</div>
</div>
<!-- ngIf: termsAndConditionsUrl -->
<!-- ngIf: privacyPolicyUrl -->
<div ng-show="loaded" class="form-field submit-container">
<button class="submit-review-button" name="commit" ng-disabled="mediaInProgressExists()">
<!-- ngIf: !mediaInProgressExists() --><span ng-if="!mediaInProgressExists()" ng-bind="'REVIEW.SUBMIT' | translate" class="ng-binding ng-scope">Submit Review</span><!-- end ngIf: !mediaInProgressExists() -->
<!-- ngIf: mediaInProgressExists() -->
</button>
</div>
</div><!-- end ngIf: showReviewBody -->
<!-- ngIf: (imagesEnabled || videosEnabled) && mediaStandAloneMode && !thankYouMode -->
<!-- ngIf: thankYouMode -->
</form>
Text Content
PLEASE WRITE A REVIEW Genuine Ford Hitch Kit - Gooseneck - 27,500 Lbs. GTWR * * * * * Required Review content required Add Photos Add Videos Submit Review Powered by uploadupload