HEX
Server: Apache/2.4.52 (Ubuntu)
System: Linux WebLive 5.15.0-79-generic #86-Ubuntu SMP Mon Jul 10 16:07:21 UTC 2023 x86_64
User: ubuntu (1000)
PHP: 7.4.33
Disabled: pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare,
Upload Files
File: /var/www/html/wpmuhibbah_err/wp-content/plugins/give/src/TestData/Framework/MetaRepository.php
<?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);
    }
}