Current File : /home/n742ef5/royalanteam.com/wp-content/plugins/myhome-core/src/Widgets/User/RatingUserWidget.php |
<?php
namespace Tangibledesign\MyHome\Widgets\User;
use Tangibledesign\Framework\Interfaces\HasReviewsInterface;
use Tangibledesign\Framework\Widgets\Helpers\BaseUserWidget;
use Tangibledesign\Framework\Widgets\Helpers\ModelSingleWidget;
use Tangibledesign\MyHome\Traits\Widgets\RatingContentControlsTrait;
use Tangibledesign\MyHome\Traits\Widgets\RatingStyleControlsTrait;
class RatingUserWidget extends BaseUserWidget implements ModelSingleWidget
{
use RatingContentControlsTrait;
use RatingStyleControlsTrait;
public function getKey(): string
{
return 'user_rating';
}
public function getName(): string
{
return esc_html__('User Rating', 'myhome-core');
}
protected function loadTemplate(): void
{
get_template_part('templates/widgets/shared/rating', args: [
'showRating' => $this->showRating(),
'showCount' => $this->showRatingCount(),
'showStars' => $this->showStars(),
'size' => $this->getStarSize(),
]);
}
public function getReviewSubject(): ?HasReviewsInterface
{
$user = $this->getUser();
return $user instanceof HasReviewsInterface ? $user : null;
}
protected function register_controls(): void
{
$this->addRatingContentSection();
$this->addRatingStyleSection();
$this->addStarsStyleSection();
$this->addRatingCountStyleSection();
$this->addVisibilitySection();
}
}