Quelqu'un peut m'aider à trier cela?
J'utilise WP 3.5.2 et j'ai le type de poste "Orders" où se trouve le champ personnalisé purchase_order.
Voici l'exemple d'enregistrement de la commande d'achat:
POCOS20130051
PO - est un préfixe toujours identique
CO - 2 premières lettres du nom du site - si le nom du site est "Coca Cola" - CO apparaîtra (si je change le nom du site, cela changera aussi )
S - toujours le même
2013 - année en cours
0051 - nombre qui augmente de 1 lorsque vous cliquez sur Ajouter un nouvel ordre. Doit avoir 4 caractères. Si le nombre est 1, 0001 apparaîtra.
À présent....
J'ai besoin de cela comme un crochet qui générera et peuplera automatiquement mon item personnalisé Purchase_order. Le numéro de bon de commande doit être généré comme un enregistrement unique.
La fonction doit compter "publié et rédigé" Order post types, puis augmenter ce nombre d'un, afin que la dernière partie du numéro de commande puisse être générée (0051).
Pour la référence, jetez un œil à la façon dont ce mec a résolu un problème similaire http://www.codeproject.com/Articles/491733/Auto-generated-sequence-number-in-SQL-Server
Merci.
Je suppose que vous avez besoin d’un endroit pour stocker globalement le dernier numéro de commande. Préférable dans la table wp_options. La méthode update_option
vous aidera. Ensuite, vous devez créer une fonction qui se déclenche à chaque fois qu'un nouvel ordre apparaît.
quelque chose comme ca:
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.
}
Je n'ai pas vérifié cette fonction, mais j'espère que ça marche.