File: /var/www/zaklada/wp-content/plugins/acfml/classes/strategy/repeater-shuffle/term.php
<?php
namespace ACFML\Repeater\Shuffle;
class Term extends Strategy {
/**
* @var string
*/
protected $id_prefix = 'term_';
/**
* @var null
*/
protected $taxonomy;
/**
* Term constructor.
*
* @param null $taxonomy
*/
public function __construct( $taxonomy = null ) {
$this->taxonomy = $taxonomy;
}
/**
* @param mixed $id
*
* @return bool
*/
public function isValidId( $id ) {
return strpos( $id, $this->id_prefix ) === 0 && $this->getNumericId( $id ) > 0;
}
/**
* Get value object for given term ID.
*
* @param string $id The element ID with "term_" at the beginning.
* @return object|null Value object with id and type or null when element not found.
*/
protected function getElement( $id ) {
if ( $this->isValidId( $id ) ) {
$id = $this->getNumericId( $id );
$term = get_term_by( 'id', $id );
if ( isset( $term->taxonomy ) ) {
return (object) [
'id' => $id,
'type' => $term->taxonomy,
];
}
}
}
/**
* @param int $id
*
* @return mixed
*/
public function getAllMeta( $id ) {
return get_term_meta( $this->getNumericId( $id ) );
}
/**
* @param int $id
* @param string $key
* @param bool $single
*
* @return mixed
*/
public function getOneMeta( $id, $key, $single = true ) {
return get_term_meta( $this->getNumericId( $id ), $key, $single );
}
/**
* @param int $id
* @param string $key
*
* @return mixed|void
*/
public function deleteOneMeta( $id, $key ) {
delete_term_meta( $this->getNumericId( $id ), $key );
}
/**
* @param int $id
* @param string $key
* @param mixed $val
*
* @return mixed|void
*/
public function updateOneMeta( $id, $key, $val ) {
update_term_meta( $this->getNumericId( $id ), $key, $val );
}
/**
* @param null $id
*
* @return mixed|void
*/
protected function get_element_type( $id = null ) {
return apply_filters( 'wpml_element_type', $this->taxonomy );
}
}