如何在WordPress的Tickera插件生成的票据中替换为登录用户头像
替换Tickera票据中的图片为登录用户头像的简便方法
方法1:修改tcpdf_images.php的图片加载逻辑
找到tcpdf_images.php中的getImageFile函数,在函数开头添加以下判断逻辑,自动将你设置的占位符图片替换为当前登录用户的头像:
global $current_user; wp_get_current_user(); // 替换成你之前拖拽元素时指定的固定图片URL $placeholder_url = 'https://你的网站域名/占位符图片路径.png'; if ($file == $placeholder_url) { // 获取用户头像的本地路径(WordPress会自动缓存远程头像到本地) $avatar_data = get_avatar_data($current_user->ID, array('size' => 200)); $avatar_path = str_replace(site_url(), ABSPATH, $avatar_data['url']); // 替换为头像本地路径 $file = $avatar_path; // 自动获取头像的MIME类型和扩展名,无需手动设置 $info['mime'] = mime_content_type($file); $info['extension'] = pathinfo($file, PATHINFO_EXTENSION); }
这个逻辑会自动匹配你设置的占位符图片,替换为用户头像并处理好mime、extension等参数,不用手动逐个调整。
方法2:修改tcpdf.php的Image方法
如果不想改动tcpdf_images.php,可以直接在tcpdf.php的Image方法开头添加替换逻辑:
global $current_user; wp_get_current_user(); $placeholder_url = 'https://你的网站域名/占位符图片路径.png'; if ($file == $placeholder_url) { $avatar_data = get_avatar_data($current_user->ID, array('size' => 200)); $avatar_path = str_replace(site_url(), ABSPATH, $avatar_data['url']); $file = $avatar_path; }
TCPDF会自动处理后续的MIME类型和扩展名识别,这个方法更简洁直接。
注意事项
- 直接修改TCPDF核心文件会在插件更新时被覆盖,建议把修改后的文件复制到主题目录的自定义TCPDF文件夹,再通过Tickera的相关钩子指定使用自定义文件(如果Tickera支持的话)。
- 优先检查Tickera是否提供票据内容过滤钩子,比如类似
tickera_ticket_content的过滤器,通过钩子替换图片无需修改核心文件,更安全。
内容的提问来源于stack exchange,提问作者Farouq Abu Saleh
相关产品推荐
相关产品推荐

