首页 / 教程文章 / WordPress文创IP柔性跨界合作插件开发实战教程

WordPress文创IP柔性跨界合作插件开发实战教程

WordPress文创IP柔性跨界合作插件开发实战教程

一、项目背景与需求分析

在文创产业蓬勃发展的今天,IP跨界合作已成为品牌拓展的重要方式。然而,许多文创机构在WordPress网站上缺乏专业的合作对接系统。本教程将带领大家开发一个完整的文创IP柔性跨界合作插件,实现合作申请、IP展示、智能匹配等功能。

核心需求:

  1. IP资源展示与管理
  2. 合作方在线申请系统
  3. 智能匹配推荐功能
  4. 合作流程跟踪管理
  5. 数据统计与分析

二、开发环境准备与插件基础结构

首先,我们需要创建插件的基础结构。在WordPress的wp-content/plugins/目录下创建新文件夹cultural-ip-cooperation

<?php
/**
 * Plugin Name: 文创IP跨界合作系统
 * Plugin URI: https://example.com/cultural-ip-cooperation
 * Description: 文创IP柔性跨界合作管理插件
 * Version: 1.0.0
 * Author: 文创开发者
 * License: GPL v2 or later
 * Text Domain: cultural-ip-cooperation
 */

// 防止直接访问
if (!defined('ABSPATH')) {
    exit;
}

// 定义插件常量
define('CIC_VERSION', '1.0.0');
define('CIC_PLUGIN_DIR', plugin_dir_path(__FILE__));
define('CIC_PLUGIN_URL', plugin_dir_url(__FILE__));

// 初始化插件
class CulturalIPCooperation {
    
    private static $instance = null;
    
    public static function get_instance() {
        if (null === self::$instance) {
            self::$instance = new self();
        }
        return self::$instance;
    }
    
    private function __construct() {
        $this->init_hooks();
    }
    
    // 初始化钩子
    private function init_hooks() {
        add_action('init', array($this, 'register_post_types'));
        add_action('admin_menu', array($this, 'add_admin_menu'));
        add_action('wp_enqueue_scripts', array($this, 'enqueue_frontend_assets'));
        add_action('admin_enqueue_scripts', array($this, 'enqueue_admin_assets'));
        
        // 短码注册
        add_shortcode('ip_cooperation_form', array($this, 'render_cooperation_form'));
        add_shortcode('ip_showcase', array($this, 'render_ip_showcase'));
    }
    
    // 注册自定义文章类型
    public function register_post_types() {
        $this->register_ip_post_type();
        $this->register_cooperation_post_type();
    }
    
    // 更多方法将在后续实现...
}

// 启动插件
CulturalIPCooperation::get_instance();
?>

三、IP资源管理模块开发

接下来,我们创建IP资源管理的自定义文章类型和相关功能。

<?php
// 在CulturalIPCooperation类中添加方法

/**
 * 注册IP资源自定义文章类型
 */
private function register_ip_post_type() {
    $labels = array(
        'name'               => __('IP资源', 'cultural-ip-cooperation'),
        'singular_name'      => __('IP资源', 'cultural-ip-cooperation'),
        'menu_name'          => __('IP管理', 'cultural-ip-cooperation'),
        'add_new'            => __('添加新IP', 'cultural-ip-cooperation'),
        'add_new_item'       => __('添加新IP资源', 'cultural-ip-cooperation'),
        'edit_item'          => __('编辑IP资源', 'cultural-ip-cooperation'),
        'new_item'           => __('新IP资源', 'cultural-ip-cooperation'),
        'view_item'          => __('查看IP资源', 'cultural-ip-cooperation'),
        'search_items'       => __('搜索IP资源', 'cultural-ip-cooperation'),
    );
    
    $args = array(
        'labels'             => $labels,
        'public'             => true,
        'publicly_queryable' => true,
        'show_ui'            => true,
        'show_in_menu'       => true,
        'query_var'          => true,
        'rewrite'            => array('slug' => 'ip-resource'),
        'capability_type'    => 'post',
        'has_archive'        => true,
        'hierarchical'       => false,
        'menu_position'      => 30,
        'menu_icon'          => 'dashicons-art',
        'supports'           => array('title', 'editor', 'thumbnail', 'excerpt', 'custom-fields'),
        'taxonomies'         => array('ip_category', 'ip_tag')
    );
    
    register_post_type('ip_resource', $args);
    
    // 注册IP分类
    $this->register_ip_taxonomies();
}

/**
 * 注册IP分类法
 */
private function register_ip_taxonomies() {
    // IP分类
    register_taxonomy(
        'ip_category',
        'ip_resource',
        array(
            'labels' => array(
                'name' => __('IP分类', 'cultural-ip-cooperation'),
                'singular_name' => __('IP分类', 'cultural-ip-cooperation'),
            ),
            'hierarchical' => true,
            'show_ui' => true,
            'show_admin_column' => true,
            'query_var' => true,
            'rewrite' => array('slug' => 'ip-category'),
        )
    );
    
    // IP标签
    register_taxonomy(
        'ip_tag',
        'ip_resource',
        array(
            'labels' => array(
                'name' => __('IP标签', 'cultural-ip-cooperation'),
                'singular_name' => __('IP标签', 'cultural-ip-cooperation'),
            ),
            'hierarchical' => false,
            'show_ui' => true,
            'show_admin_column' => true,
            'query_var' => true,
            'rewrite' => array('slug' => 'ip-tag'),
        )
    );
}

/**
 * 添加IP资源元数据框
 */
public function add_ip_meta_boxes() {
    add_meta_box(
        'ip_details',
        __('IP详细信息', 'cultural-ip-cooperation'),
        array($this, 'render_ip_meta_box'),
        'ip_resource',
        'normal',
        'high'
    );
}

/**
 * 渲染IP元数据框
 */
public function render_ip_meta_box($post) {
    // 获取现有值
    $ip_type = get_post_meta($post->ID, '_ip_type', true);
    $cooperation_mode = get_post_meta($post->ID, '_cooperation_mode', true);
    $target_industry = get_post_meta($post->ID, '_target_industry', true);
    $popularity_score = get_post_meta($post->ID, '_popularity_score', true) ?: 0;
    
    // 添加nonce字段用于安全验证
    wp_nonce_field('save_ip_meta', 'ip_meta_nonce');
    
    // HTML表单
    ?>
    <div class="ip-meta-fields">
        <p>
            <label for="ip_type"><?php _e('IP类型:', 'cultural-ip-cooperation'); ?></label>
            <select id="ip_type" name="ip_type">
                <option value="character" <?php selected($ip_type, 'character'); ?>><?php _e('角色形象', 'cultural-ip-cooperation'); ?></option>
                <option value="story" <?php selected($ip_type, 'story'); ?>><?php _e('故事内容', 'cultural-ip-cooperation'); ?></option>
                <option value="art" <?php selected($ip_type, 'art'); ?>><?php _e('艺术设计', 'cultural-ip-cooperation'); ?></option>
                <option value="brand" <?php selected($ip_type, 'brand'); ?>><?php _e('品牌IP', 'cultural-ip-cooperation'); ?></option>
            </select>
        </p>
        
        <p>
            <label for="cooperation_mode"><?php _e('合作模式:', 'cultural-ip-cooperation'); ?></label>
            <select id="cooperation_mode" name="cooperation_mode" multiple>
                <option value="licensing" <?php selected(in_array('licensing', explode(',', $cooperation_mode))); ?>><?php _e('授权许可', 'cultural-ip-cooperation'); ?></option>
                <option value="co-branding" <?php selected(in_array('co-branding', explode(',', $cooperation_mode))); ?>><?php _e('联合品牌', 'cultural-ip-cooperation'); ?></option>
                <option value="product" <?php selected(in_array('product', explode(',', $cooperation_mode))); ?>><?php _e('产品开发', 'cultural-ip-cooperation'); ?></option>
                <option value="marketing" <?php selected(in_array('marketing', explode(',', $cooperation_mode))); ?>><?php _e('营销推广', 'cultural-ip-cooperation'); ?></option>
            </select>
        </p>
        
        <p>
            <label for="target_industry"><?php _e('目标行业:', 'cultural-ip-cooperation'); ?></label>
            <input type="text" id="target_industry" name="target_industry" value="<?php echo esc_attr($target_industry); ?>" placeholder="<?php _e('用逗号分隔多个行业', 'cultural-ip-cooperation'); ?>">
        </p>
        
        <p>
            <label for="popularity_score"><?php _e('热度评分 (0-100):', 'cultural-ip-cooperation'); ?></label>
            <input type="range" id="popularity_score" name="popularity_score" min="0" max="100" value="<?php echo esc_attr($popularity_score); ?>">
            <span id="score_display"><?php echo esc_html($popularity_score); ?></span>
        </p>
    </div>
    
    <script>
    jQuery(document).ready(function($) {
        // 实时显示评分值
        $('#popularity_score').on('input', function() {
            $('#score_display').text($(this).val());
        });
    });
    </script>
    <?php
}

/**
 * 保存IP元数据
 */
public function save_ip_meta($post_id) {
    // 安全检查
    if (!isset($_POST['ip_meta_nonce']) || 
        !wp_verify_nonce($_POST['ip_meta_nonce'], 'save_ip_meta')) {
        return;
    }
    
    // 检查自动保存
    if (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE) {
        return;
    }
    
    // 检查权限
    if (!current_user_can('edit_post', $post_id)) {
        return;
    }
    
    // 保存字段
    $fields = array('ip_type', 'cooperation_mode', 'target_industry', 'popularity_score');
    
    foreach ($fields as $field) {
        if (isset($_POST[$field])) {
            $value = is_array($_POST[$field]) ? 
                     implode(',', $_POST[$field]) : 
                     sanitize_text_field($_POST[$field]);
            update_post_meta($post_id, '_' . $field, $value);
        }
    }
}
?>

四、合作申请表单模块

创建前端合作申请表单,让潜在合作伙伴可以提交申请。

<?php
/**
 * 渲染合作申请表单短码
 */
public function render_cooperation_form($atts) {
    // 短码属性处理
    $atts = shortcode_atts(array(
        'ip_id' => 0,
        'title' => __('合作申请', 'cultural-ip-cooperation'),
    ), $atts, 'ip_cooperation_form');
    
    // 如果未登录,显示登录提示
    if (!is_user_logged_in()) {
        return '<div class="cic-notice">' . 
               __('请先登录后再提交合作申请', 'cultural-ip-cooperation') . 
               ' <a href="' . wp_login_url(get_permalink()) . '">' . 
               __('登录', 'cultural-ip-cooperation') . '</a></div>';
    }
    
    ob_start();
    ?>
    <div class="cic-cooperation-form">
        <h3><?php echo esc_html($atts['title']); ?></h3>
        
        <?php if (isset($_GET['success']) && $_GET['success'] == '1'): ?>
            <div class="cic-alert cic-alert-success">
                <?php _e('申请提交成功!我们会尽快与您联系。', 'cultural-ip-cooperation'); ?>
            </div>
        <?php endif; ?>
        
        <form id="cic-cooperation-form" method="post" action="<?php echo admin_url('admin-ajax.php'); ?>">
            <input type="hidden" name="action" value="submit_cooperation_application">
            <input type="hidden" name="ip_id" value="<?php echo esc_attr($atts['ip_id']); ?>">
            <?php wp_nonce_field('cooperation_application', 'cic_nonce'); ?>
            
            <div class="form-group">
                <label for="company_name"><?php _e('公司/机构名称 *', 'cultural-ip-cooperation'); ?></label>
                <input type="text" id="company_name" name="company_name" required>
            </div>
            
            <div class="form-group">
                <label for="contact_person"><?php _e('联系人 *', 'cultural-ip-cooperation'); ?></label>
                <input type="text" id="contact_person" name="contact_person" required>
            </div>
            
            <div class="form-group">
                <label for="contact_email"><?php _e('联系邮箱 *', 'cultural-ip-cooperation'); ?></label>
                <input type="email" id="contact_email" name="contact_email" required>
            </div>
            
            <div class="form-group">
                <label for="contact_phone"><?php _e('联系电话', 'cultural-ip-cooperation'); ?></label>
                <input type="tel" id="contact_phone" name="contact_phone">
            </div>
            
            <div class="form-group">
                <label for="industry"><?php _e('所属行业 *', 'cultural-ip-cooperation'); ?></label>
                <select id="industry" name="industry" required>
                    <option value=""><?php _e('请选择行业', 'cultural-ip-cooperation'); ?></option>
                    <option value="fashion"><?php _e('时尚服饰', 'cultural-ip-cooperation'); ?></option>
                    <option value="cosmetics"><?php _e('美妆个护', 'cultural-ip-cooperation'); ?></option>
                    <option value="food"><?php _e('食品饮料', 'cultural-ip-cooperation'); ?></option>
                    <option value="digital"><?php _e('数码电子', 'cultural-ip-cooperation'); ?></option>
                    <option value="entertainment"><?php _e('文娱影视', 'cultural-ip-cooperation'); ?></option>
                    <option value="other"><?php _e('其他', 'cultural-ip-cooperation'); ?></option>
                </select>
            </div>
            
            <div class="form-group">
                <label for="cooperation_type"><?php _e('合作类型 *', 'cultural-ip-cooperation'); ?></label>
                <select id="cooperation_type" name="cooperation_type" required>
                    <option value=""><?php _e('请选择合作类型', 'cultural-ip-cooperation'); ?></option>
                    <option value="product"><?php _e('产品开发', 'cultural-ip-cooperation'); ?></option>
                    <option value="licensing"><?php _e('IP授权', 'cultural-ip-cooperation'); ?></option>
                    <option value="marketing"><?php _e('联合营销', 'cultural-ip-cooperation'); ?></option>
                    <option value="event"><?php _e('活动合作', 'cultural-ip-cooperation'); ?></option>
                </select>
            </div>
            
            <div class="form-group">
                <label for="budget_range"><?php _e('预算范围', 'cultural-ip-cooperation'); ?></label>
                <select id="budget_range" name="budget_range">
                    <option value=""><?php _e('请选择预算范围', 'cultural-ip-cooperation'); ?></option>
                    <option value="under_50k"><?php _e('5万以下', 'cultural-ip-cooperation'); ?></option>
                    <option value="50k_200k"><?php _e('5-20万', 'cultural-ip-cooperation'); ?></option>
                    <option value="200k_500k"><?php _e('20-50万', 'cultural-ip-cooperation'); ?></option>
                    <option value="over_500k"><?php _e('50万以上', 'cultural-ip-cooperation'); ?></option>
                </select>
            </div>
            
            <div class="form-group">
                <label for="cooperation_details"><?php _e('合作意向描述 *', 'cultural-ip-cooperation'); ?></label>
                <textarea id="cooperation_details" name="cooperation_details" rows="5" required></textarea>
            </div>
            
            <div class="form-group">
                <label for="additional_info"><?php _e('补充信息', 'cultural-ip-cooperation'); ?></label>
                <textarea id="additional_info" name="additional_info" rows="3"></textarea>
            </div>
            
            <div class="form-group">
                <button type="submit" class="cic-submit-btn">
                    <?php _e('提交申请', 'cultural-ip-cooperation'); ?>
                </button>
            </div>
        </form>
        
        <div id="cic-form-message" class="cic-alert" style="display:none;"></div>
    </div>
    
    <script>
    jQuery(document).ready(function($) {
        $('#cic-cooperation-form').on('submit', function(e) {
            e.preventDefault();
            
            var form = $(this);
            var submitBtn = form.find('.cic-submit-btn');
            var messageDiv = $('#cic-form-message');
            
            // 禁用提交按钮防止重复提交
            submitBtn.prop('disabled', true).text('<?php _e("提交中...", "cultural-ip-cooperation"); ?>');
            messageDiv.hide().removeClass('cic-alert-success cic-alert-error');
            
            // AJAX提交
            $.ajax({

url: form.attr('action'),

            type: 'POST',
            data: form.serialize(),
            success: function(response) {
                if (response.success) {
                    messageDiv.addClass('cic-alert-success').text(response.data.message).show();
                    form[0].reset();
                    // 重定向到成功页面
                    setTimeout(function() {
                        window.location.href = window.location.href + '?success=1';
                    }, 1500);
                } else {
                    messageDiv.addClass('cic-alert-error').text(response.data.message).show();
                }
            },
            error: function() {
                messageDiv.addClass('cic-alert-error').text('<?php _e("提交失败,请稍后重试", "cultural-ip-cooperation"); ?>').show();
            },
            complete: function() {
                submitBtn.prop('disabled', false).text('<?php _e("提交申请", "cultural-ip-cooperation"); ?>');
            }
        });
    });
});
</script>
<?php

return ob_get_clean();

}

/**

  • 处理合作申请AJAX提交
    */

public function handle_cooperation_submission() {

// 验证nonce
if (!isset($_POST['cic_nonce']) || 
    !wp_verify_nonce($_POST['cic_nonce'], 'cooperation_application')) {
    wp_send_json_error(array('message' => __('安全验证失败', 'cultural-ip-cooperation')));
}

// 验证用户登录状态
if (!is_user_logged_in()) {
    wp_send_json_error(array('message' => __('请先登录', 'cultural-ip-cooperation')));
}

// 验证必填字段
$required_fields = array('company_name', 'contact_person', 'contact_email', 'industry', 'cooperation_type', 'cooperation_details');
foreach ($required_fields as $field) {
    if (empty($_POST[$field])) {
        wp_send_json_error(array('message' => sprintf(__('请填写%s', 'cultural-ip-cooperation'), $field)));
    }
}

// 验证邮箱格式
if (!is_email($_POST['contact_email'])) {
    wp_send_json_error(array('message' => __('邮箱格式不正确', 'cultural-ip-cooperation')));
}

// 创建合作申请记录
$current_user = wp_get_current_user();
$ip_id = intval($_POST['ip_id']);

$application_data = array(
    'post_title'   => sprintf(__('%s的合作申请 - %s', 'cultural-ip-cooperation'), 
                             sanitize_text_field($_POST['company_name']), 
                             date('Y-m-d H:i:s')),
    'post_content' => sanitize_textarea_field($_POST['cooperation_details']),
    'post_status'  => 'pending',
    'post_type'    => 'cooperation_application',
    'post_author'  => $current_user->ID,
);

$application_id = wp_insert_post($application_data);

if (is_wp_error($application_id)) {
    wp_send_json_error(array('message' => __('申请提交失败,请稍后重试', 'cultural-ip-cooperation')));
}

// 保存元数据
$meta_fields = array(
    'company_name'    => sanitize_text_field($_POST['company_name']),
    'contact_person'  => sanitize_text_field($_POST['contact_person']),
    'contact_email'   => sanitize_email($_POST['contact_email']),
    'contact_phone'   => sanitize_text_field($_POST['contact_phone']),
    'industry'        => sanitize_text_field($_POST['industry']),
    'cooperation_type'=> sanitize_text_field($_POST['cooperation_type']),
    'budget_range'    => sanitize_text_field($_POST['budget_range']),
    'additional_info' => sanitize_textarea_field($_POST['additional_info']),
    'ip_id'           => $ip_id,
    'user_id'         => $current_user->ID,
    'submission_date' => current_time('mysql'),
    'status'          => 'pending_review',
);

foreach ($meta_fields as $key => $value) {
    update_post_meta($application_id, '_' . $key, $value);
}

// 发送通知邮件
$this->send_notification_email($application_id, $meta_fields);

wp_send_json_success(array(
    'message' => __('申请提交成功!', 'cultural-ip-cooperation'),
    'application_id' => $application_id
));

}

/**

  • 发送通知邮件
    */

private function send_notification_email($application_id, $data) {

$to = get_option('admin_email');
$subject = sprintf(__('新的文创IP合作申请 - %s', 'cultural-ip-cooperation'), $data['company_name']);

$message = sprintf(__('收到新的合作申请,详情如下:', 'cultural-ip-cooperation')) . "nn";
$message .= sprintf(__('申请ID: %s', 'cultural-ip-cooperation'), $application_id) . "n";
$message .= sprintf(__('公司名称: %s', 'cultural-ip-cooperation'), $data['company_name']) . "n";
$message .= sprintf(__('联系人: %s', 'cultural-ip-cooperation'), $data['contact_person']) . "n";
$message .= sprintf(__('联系电话: %s', 'cultural-ip-cooperation'), $data['contact_phone']) . "n";
$message .= sprintf(__('联系邮箱: %s', 'cultural-ip-cooperation'), $data['contact_email']) . "n";
$message .= sprintf(__('所属行业: %s', 'cultural-ip-cooperation'), $data['industry']) . "n";
$message .= sprintf(__('合作类型: %s', 'cultural-ip-cooperation'), $data['cooperation_type']) . "n";
$message .= sprintf(__('预算范围: %s', 'cultural-ip-cooperation'), $data['budget_range']) . "n";
$message .= sprintf(__('申请时间: %s', 'cultural-ip-cooperation'), $data['submission_date']) . "nn";

$message .= __('请登录管理后台查看详细信息:', 'cultural-ip-cooperation') . "n";
$message .= admin_url('edit.php?post_type=cooperation_application') . "n";

wp_mail($to, $subject, $message);

}
?>


## 五、智能匹配算法实现

<?php
/**

  • IP智能匹配算法
  • 根据合作方需求匹配最合适的IP资源
    */

public function match_ips_for_partner($partner_data) {

global $wpdb;

// 获取所有活跃的IP资源
$args = array(
    'post_type'      => 'ip_resource',
    'post_status'    => 'publish',
    'posts_per_page' => -1,
    'meta_query'     => array(
        array(
            'key'     => '_status',
            'value'   => 'active',
            'compare' => '='
        )
    )
);

$ip_resources = get_posts($args);
$matched_ips = array();

foreach ($ip_resources as $ip) {
    $score = $this->calculate_match_score($ip->ID, $partner_data);
    
    if ($score > 0) {
        $matched_ips[] = array(
            'ip_id'    => $ip->ID,
            'title'    => $ip->post_title,
            'score'    => $score,
            'details'  => $this->get_ip_match_details($ip->ID, $partner_data)
        );
    }
}

// 按匹配分数排序
usort($matched_ips, function($a, $b) {
    return $b['score'] - $a['score'];
});

return array_slice($matched_ips, 0, 5); // 返回前5个匹配结果

}

/**

  • 计算匹配分数
    */

private function calculate_match_score($ip_id, $partner_data) {

$score = 0;

// 获取IP信息
$ip_type = get_post_meta($ip_id, '_ip_type', true);
$cooperation_modes = explode(',', get_post_meta($ip_id, '_cooperation_mode', true));
$target_industries = explode(',', get_post_meta($ip_id, '_target_industry', true));
$popularity_score = intval(get_post_meta($ip_id, '_popularity_score', true));

// 1. 行业匹配 (权重: 40%)
if (!empty($partner_data['industry']) && !empty($target_industries)) {
    foreach ($target_industries as $industry) {
        if (strpos($partner_data['industry'], trim($industry)) !== false) {
            $score += 40;
            break;
        }
    }
}

// 2. 合作模式匹配 (权重: 30%)
if (!empty($partner_data['cooperation_type']) && !empty($cooperation_modes)) {
    foreach ($cooperation_modes as $mode) {
        if ($this->is_cooperation_mode_match($mode, $partner_data['cooperation_type'])) {
            $score += 30;
            break;
        }
    }
}

// 3. 预算匹配 (权重: 20%)
if (!empty($partner_data['budget_range'])) {
    $budget_score = $this->calculate_budget_match($ip_id, $partner_data['budget_range']);
    $score += $budget_score * 20;
}

// 4. 热度加成 (权重: 10%)
$score += ($popularity_score / 100) * 10;

return $score;

}

/**

  • 检查合作模式是否匹配
    */

private function is_cooperation_mode_match($ip_mode, $partner_mode) {

$mode_mapping = array(
    'product'     => array('product', 'licensing'),
    'licensing'   => array('licensing', 'co-branding'),
    'co-branding' => array('co-branding', 'marketing'),
    'marketing'   => array('marketing', 'event'),
    'event'       => array('event', 'marketing')
);

return isset($mode_mapping[$ip_mode]) && 
       in_array($partner_mode, $mode_mapping[$ip_mode]);

}

/**

  • 计算预算匹配度
    */

private function calculate_budget_match($ip_id, $partner_budget) {

// 获取IP的预算要求
$ip_budget_level = get_post_meta($ip_id, '_budget_level', true);

$budget_matrix = array(
    'under_50k'   => array('under_50k' => 1.0, '50k_200k' => 0.6, '200k_500k' => 0.3, 'over_500k' => 0.1),
    '50k_200k'    => array('under_50k' => 0.4, '50k_200k' => 1.0, '200k_500k' => 0.7, 'over_500k' => 0.3),
    '200k_500k'   => array('under_50k' => 0.2, '50k_200k' => 0.5, '200k_500k' => 1.0, 'over_500k' => 0.6),
    'over_500k'   => array('under_50k' => 0.1, '50k_200k' => 0.3, '200k_500k' => 0.5, 'over_500k' => 1.0)
);

return isset($budget_matrix[$ip_budget_level][$partner_budget]) ? 
       $budget_matrix[$ip_budget_level][$partner_budget] : 0;

}

/**

  • 获取匹配详情
    */

private function get_ip_match_details($ip_id, $partner_data) {

$details = array();

$ip_type = get_post_meta($ip_id, '_ip_type', true);
$cooperation_modes = get_post_meta($ip_id, '_cooperation_mode', true);
$target_industries = get_post_meta($ip_id, '_target_industry', true);

$details[] = sprintf(__('IP类型: %s', 'cultural-ip-cooperation'), $this->get_ip_type_label($ip_type));

if ($cooperation_modes) {
    $modes = explode(',', $cooperation_modes);
    $mode_labels = array_map(array($this, 'get_cooperation_mode_label'), $modes);
    $details[] = sprintf(__('支持合作模式: %s', 'cultural-ip-cooperation'), implode(', ', $mode_labels));
}

if ($target_industries) {
    $details[] = sprintf(__('目标行业: %s', 'cultural-ip-cooperation'), $target_industries);
}

return $details;

}
?>


## 六、管理后台界面开发

<?php
/**

  • 添加管理菜单
    */

public function add_admin_menu() {

// 主菜单
add_menu_page(
    __('文创IP合作', 'cultural-ip-cooperation'),
    __('文创IP合作', 'cultural-ip-cooperation'),
    'manage_options',
    'cic-dashboard',
    array($this, 'render_dashboard'),
    'dashicons-groups',
    30
);

// 子菜单
add_submenu_page(
    'cic-dashboard',
    __('数据统计', 'cultural-ip-cooperation'),
    __('数据统计', 'cultural-ip-cooperation'),
    'manage_options',
    'cic-statistics',
    array($this, 'render_statistics_page')
);

add_submenu_page(
    'cic-dashboard',
    __('匹配设置', 'cultural-ip-cooperation'),
    __('匹配设置', 'cultural-ip-cooperation'),
    'manage_options',
    'cic-settings',
    array($this, 'render_settings_page')
);

}

/**

  • 渲染仪表盘
    */

public function render_dashboard() {

?>
<div class="wrap cic-dashboard">
    <h1><?php _e('文创IP合作系统仪表盘', 'cultural-ip-cooperation'); ?></h1>
    
    <div class="cic-stats-row">
        <div class="cic-stat-box">
            <h3><?php _e('活跃IP数量', 'cultural-ip-cooperation'); ?></h3>
            <p class="stat-number"><?php echo $this->count_active_ips(); ?></p>
        </div>
        
        <div class="cic-stat-box">
            <h3><?php _e('待处理申请', 'cultural-ip-cooperation'); ?></h3>
            <p class="stat-number"><?php echo $this->count_pending_applications(); ?></p>
        </div>
        
        <div class="cic-stat-box">
            <h3><?php _e('成功合作', 'cultural-ip-cooperation'); ?></h3>
            <p class="stat-number"><?php echo $this->count_successful_cooperations(); ?></p>
        </div>
        
        <div class="cic-stat-box">
            <h3><?php _e('匹配成功率', 'cultural-ip-cooperation'); ?></h3>
            <p class="stat-number"><?php echo $this->calculate_match_rate(); ?>%</p>
        </div>
    </div>
    
    <div class="cic-recent-activity">
        <h2><?php _e('最近活动', 'cultural-ip-cooperation'); ?></h2>
        <?php $this->render_recent_activity(); ?>
    </div>
    
    <div class="cic-quick-actions">
        <h2><?php _e('快速操作', 'cultural-ip-cooperation'); ?></h2>
        <div class="action-buttons">
            <a href="<?php echo admin_url('post-new.php?post_type=ip_resource'); ?>" class="button button-primary">
                <?php _e('添加新IP', 'cultural-ip-cooperation'); ?>
            </a>
            <a href="<?php echo admin_url('edit.php?post_type=cooperation_application'); ?>" class="button">
                <?php _e('查看申请', 'cultural-ip-cooperation'); ?>
            </a>
            <a href="<?php echo admin_url('admin.php?page=cic-statistics'); ?>" class="button">
                <?php _e('查看统计', 'cultural-ip-cooperation'); ?>
            </a>
        </div>
    </div>
</div>

<style>
.cic-dashboard { padding: 20px; }
.cic-stats-row { display: flex; gap: 20px; margin: 30px 0; }
.cic-stat-box { 
    flex: 1; 
    background: white; 
    padding: 20px; 
    border-radius: 8px;
    box-shadow: 0 2px 4px rgba(0,0,0,0.1);
}
.stat-number { 
    font-size: 36px; 
    font-weight: bold; 
    color: #2271b1; 
    margin: 10px 0;
}
.cic-recent-activity, .cic-quick-actions { 
    background: white; 
    padding: 20px; 
    margin: 20px 0;
    border-radius: 8px;
    box-shadow: 0 2px 4px rgba(0,0,0,0.1);
}
.action-buttons { display: flex; gap: 10px; margin-top: 15px; }
</style>
<?php

}

/**

  • 渲染统计页面
    */

public function render_statistics_page() {

?>
<div class="wrap">
    <h1><?php _e('数据统计与分析', 'cultural-ip-cooperation'); ?></h1>
    
    <div class="cic-charts-container">
        <div class="cic-chart-box">
            <h3><?php _e('申请趋势', 'cultural-ip-cooperation'); ?></h3>
            <canvas id="applicationsChart" width="400" height="200"></canvas>
本文来自网络,不代表柔性供应链服务中心立场,转载请注明出处:https://mall.org.cn/6231.html

EXCHANGES®作者

上一篇
下一篇

为您推荐

发表回复

联系我们

联系我们

18559313275

在线咨询: QQ交谈

邮箱: vip@exchanges.center

工作时间:周一至周五,9:00-17:30,节假日休息
返回顶部