Как расширить плагин для запуска одновременно с другим плагином? - PullRequest
0 голосов
/ 08 июля 2019

Итак, как говорится в заголовке, я хочу расширить плагин. когда кто-то скачивает с сайта через Download Manager, плагин регистрирует событие в базе данных (таблица: prefix_ahm_download_stats). Для меня важно записать событие во вторую таблицу в БД (таблица: prefix_table2). За эти действия отвечает файл plugins / download-manager / libs / class.DownloadStats.php.

<?php
/**
 * Class DoawnloadStats
 */
namespace WPDM\libs;

use WPDM\Session;

class DownloadStats{

    function __construct(){

    }

    function newStat($pid, $uid, $oid){
        global $wpdb, $current_user;
        //if(isset($_SESSION['downloaded_'.$pid])) return;
        //if(isset($_COOKIE['downloaded_'.$pid])) return;
        if(Session::get('downloaded_'.$pid)) return;
        $ip = (get_option('__wpdm_noip') == 0)?$_SERVER['REMOTE_ADDR']:"";
        $wpdb->insert("{$wpdb->prefix}ahm_download_stats",array('pid'=>(int)$pid, 'uid'=>(int)$uid,'oid'=>$oid, 'year'=> date("Y"), 'month'=> date("m"), 'day'=> date("d"), 'timestamp'=> time(),'ip'=>"$ip"));
        update_post_meta($pid, '__wpdm_download_count',intval(get_post_meta($pid, '__wpdm_download_count', true))+1);
        if($oid!='' && class_exists('\WPDMPP\Libs\Order')){
            $order = new \WPDMPP\Libs\Order();
            $order->Update(array('download'=>1), $oid);
        }

        $udl = maybe_unserialize(get_post_meta($pid, "__wpdmx_user_download_count", true));
        if (is_user_logged_in()) {
            $index = $current_user->ID;
        }
        else {
            $index = str_replace(".", "_", $_SERVER['REMOTE_ADDR']);
        }
        $udl["{$index}"] = isset($udl["{$index}"])?(int)$udl["{$index}"]+1:1;
        update_post_meta($pid, '__wpdmx_user_download_count', $udl);
        //setcookie('downloaded_'.$pid,  $ip, 1800);
        if($ip == '') $ip = uniqid();
        Session::set('downloaded_'.$pid, $ip);
    }
}

Проблема не в том, что я не могу создать аналогичную функцию для вставки данных в другую таблицу. Проблема в том, что когда я загружаю плагин, мне нужно заново отредактировать файл. Я сам пытался написать собственный (внешний) плагин, но не смог заставить его работать. У меня нет большого опыта работы с хуками и действиями, поэтому я думаю, что это не так: с. Может ли кто-нибудь помочь мне расширить плагин, чтобы при его обновлении я не терял свой код? Постскриптум Я хочу запустить код при вызове кода выше.

1 Ответ

0 голосов
/ 08 июля 2019

Я предлагаю вам начать здесь для Wordpress "Плагин": https://developer.wordpress.org/plugins/hooks/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...