Current File : /home/n742ef5/royalanteam.com/wp-content/plugins/myhome-core/src/Widgets/User/UserReviewsWidget.php |
<?php
namespace Tangibledesign\MyHome\Widgets\User;
use Tangibledesign\Framework\Interfaces\HasReviewsInterface;
use Tangibledesign\Framework\Models\Review;
use Tangibledesign\Framework\Widgets\Helpers\BaseUserWidget;
use Tangibledesign\MyHome\Traits\Widgets\RatingContentControlsTrait;
use Tangibledesign\MyHome\Traits\Widgets\ReviewsContentControlsTrait;
use Tangibledesign\MyHome\Traits\Widgets\ReviewsStyleControlsTrait;
class UserReviewsWidget extends BaseUserWidget
{
use ReviewsContentControlsTrait;
use ReviewsStyleControlsTrait;
use RatingContentControlsTrait;
public function getKey(): string
{
return 'user_reviews';
}
public function getName(): string
{
return esc_html__('User Reviews', 'myhome-core');
}
protected function loadTemplate(): void
{
get_template_part('templates/widgets/shared/reviews/reviews_widget');
}
public function get_style_depends(): array
{
return ['photo-swipe'];
}
protected function register_controls(): void
{
$this->addContentSection();
$this->addRatingContentSection();
$this->addReviewsBaseListStyleSection();
$this->addReviewStyleSection();
$this->addReviewFormStyleSection();
$this->addReviewsModalStyleSection();
$this->addUserAvatarPlaceholderStyleSection();
$this->addVisibilitySection();
}
private function addContentSection(): void
{
$this->startContentControlsSection();
$this->addInitialReviewsNumberControl();
$this->addReviewsLimitControl();
$this->addInitialRatingControl();
$this->endControlsSection();
}
public function getReviewType(): string
{
return Review::TYPE_USER;
}
public function getReviewSubjectId(): int
{
$user = $this->getUser();
if (!$user) {
return 0;
}
return $user->getId();
}
public function getReviewSubject(): ?HasReviewsInterface
{
$user = $this->getUser();
return $user instanceof HasReviewsInterface ? $user : null;
}
}