Create New Item
Item Type
File
Folder
Item Name
Search file in folder and subfolders...
Are you sure want to rename?
File Manager
/
wp-content
/
plugins
/
give
/
src
/
EventTickets
/
DataTransferObjects
:
MetaRepository.php
Advanced Search
Upload
New Item
Settings
Back
Back Up
Advanced Editor
Save
<?php namespace Give\TestData\Framework; class MetaRepository { /** @var string */ protected $tableName; /** @var string */ protected $relationshipColumnName; /** * @param string $relationshipColumnName */ public function __construct($tableName, $relationshipColumnName) { global $wpdb; $this->wpdb = $wpdb; $this->tableName = $wpdb->prefix . $tableName; $this->relationshipColumnName = $relationshipColumnName; } public function persist($relationshipID, $metaData) { $values = array_map( function ($metaKey, $metaValue) use ($relationshipID) { return sprintf("( %s, '%s', '%s' )", $relationshipID, esc_sql($metaKey), esc_sql($metaValue)); }, array_keys($metaData), $metaData ); $this->wpdb->query( $this->getSql($values) ); } protected function getSql($values) { $format = "INSERT INTO $this->tableName {$this->getColumns()} VALUES %s"; return sprintf($format, implode(',', $values)); } protected function getColumns() { return sprintf('( %s, meta_key, meta_value )', $this->relationshipColumnName); } }