是否使用加一的复数值自动填充自定义字段?

时间:2013-07-19 作者:Danijel

有人能帮我整理一下吗?

我使用的是WP 3.5.2,在purchase\\u order自定义字段所在的位置有“Orders”post类型。

这是采购订单记录的示例:

POCOS20130051

PO - 是始终相同的前缀

CO - 网站名称的前两个字母-如果网站名称是“Coca-Cola”-CO将出现(如果我更改网站名称,这也将更改)

S - 总是一样的

2013 - 本年度

0051 - 当点击添加新订单时增加1的数字。必须有4个字符。如果数字为1,则会出现0001。

现在

我需要这作为一个钩子,将自动生成和自动填充我的采购订单自定义文件。采购订单编号必须作为唯一记录生成。

函数必须计算“已发布和已起草”Order post类型,然后将该数字增加一,这样就可以生成采购订单编号的最后一部分(0051)。

作为参考,请看看这个家伙是如何解决类似问题的http://www.codeproject.com/Articles/491733/Auto-generated-sequence-number-in-SQL-Server

谢谢

1 个回复
SO网友:Lilumi

我想您需要一个全局存储上一个订单号的地方。最好在表wp\\U选项中。方法update_option 会帮助你的。然后,您需要创建一个函数,该函数将在每次出现新订单时激发。

诸如此类:

add_action( \'save_post\', \'setOrderNumber\');
function setOrderNumber($post_id) {

  $slug = \'orders\'; // slug of your post_type called "Orders"

  if ( $slug != $_POST[\'post_type\'] ) {
        return;
    }
  if ( !current_user_can( \'edit_post\', $post_id ) ) {
        return;
    }

  $counter = get_option( \'lastOrderCount\' ); // example 0051
  $counter++; // returns 0052
  update_post_meta($post_id, \'purchase_order\', \'POCOS\'.date(\'Y\').$counter);
  update_option( \'lastOrderCount\', $counter ); // set the new number of order. 
}
我没有检查这个函数,但我希望它能工作。

结束