唯一顺序预订码

时间:2016-01-14 作者:Al Rosado

我有一个情况,我正在重建一个旅游中转预订网站,我已经创建了预订cpt,每次用户放置预订时,它都会自动发布为新预订。

现在,我需要一种更好的方法来使用唯一的编号定位每个预订,另一种情况是以前的系统已经有一个序列号,因此我需要此代码来确定起点,例如:

上一系统最后编号:3000

新wp系统起点:3001

新预订:3002

新预订:3003

等等

我对如何实现这一目标有一个模糊的想法。为保留代码创建一个自定义字段,每次放置保留时,检查最后一个后期保留字段并增加一个,但我不知道这是否是最好的方法。

1 个回复
最合适的回答,由SO网友:Sladix 整理而成

其中一个解决方案:

在插件中,您在其激活时创建一个选项,以存储您的序列号:

/*
Plugin Name: Reservation Increment
Description: test
*/


/**
*
* Name : myplugin_activate
* Description : Activation function
*
* @params
* @return 
*
**/

function myplugin_activate() {
    update_option(\'reservation_increment\',3000);
}
register_activation_hook( __FILE__, \'myplugin_activate\' );
现在,您必须更新该值,并在创建新预订时将其与新CPT关联:

/**
*
* Name : update_reservation_sequence
* Description : Updates the reservation unique incremential number
*
* @params
* @return 
*
**/
function update_reservation_sequence ($post_id, $post, $update){

    $slug = \'reservation_cpt\';

    // If this isn\'t a \'reservation_cpt\' post, don\'t update it.
    if ( $slug != $post->post_type  || $update) {
        return;
    }

    $increment = get_option(\'reservation_increment\') +1;

    if ( ! add_post_meta( $post_id, \'reservation\', $increment, true ) ) { 
       update_post_meta ( $post_id, \'reservation\', $increment );
    }

    update_option(\'reservation_increment\',$increment);

    return;
}

add_action( \'save_post\', \'update_reservation_sequence\',10,3 );
然后,在您的单个预订中访问它。php模板:

echo "<p>Reservation number : ".get_post_meta( get_the_ID(), \'reservation\', true )."</p>";
希望这会有所帮助!

相关推荐

如何在Functions.php中链接style.css

我是WordPress的新手;我刚开始学习WordPress。我想把风格联系起来。函数中的css。php,但我无法解决这里可能存在的问题。谁能给我指出正确的方向吗?指数php<?php get_header(); ?> <?php if ( have_posts() ) { while ( have_posts() ) { the_post();