par
crepmaster » 31 janv. 2012, 19:24
Bonjour je suis en train d'essayer de modifier un plugin buddypress ( membership). Je plugin permet de créer differents niveaux d'abonement ( journalier, mensuel ou annuel).
J'aimerai crée un niveau qui finisse toujours le 31/12 de l'année en cours.
la classe subscription a été crée et elle possède de nombreuses fonctions.
Code : Tout sélectionner
if(!class_exists('M_Subscription')) {
class M_Subscription {
var $id = false;
var $db;
var $tables = array('membership_levels', 'membership_rules', 'subscriptions', 'subscriptions_levels', 'membership_relationships', 'subscriptionmeta');
var $membership_levels;
var $membership_rules;
var $subscriptions;
var $subscriptions_levels;
var $membership_relationships;
var $subscriptionmeta;
// if the data needs reloaded, or hasn't been loaded yet
var $dirty = true;
var $subscription;
var $levels = array();
var $levelorder = array();
function __construct( $id = false ) {
global $wpdb;
$this->db =& $wpdb;
foreach($this->tables as $table) {
$this->$table = membership_db_prefix($this->db, $table);
}
$this->id = $id;
}
function M_Subscription( $id = false ) {
$this->__construct( $id );
}
le prix et durée se determinent ainsi
Code : Tout sélectionner
function get_pricingarray() {
$levels = $this->get_levels();
$prices = array();
foreach( (array) $levels as $key => $level ) {
if($level->sub_type == 'indefinite') {
// This will be the last item in any list
$prices[] = array( 'period' => $level->level_period, 'amount' => $level->level_price, 'type' => $level->sub_type, 'unit' => $level->level_period_unit);
break;
} elseif($level->sub_type == 'serial') {
// This will be the last item in any list
$prices[] = array( 'period' => $level->level_period, 'amount' => $level->level_price, 'type' => $level->sub_type, 'unit' => $level->level_period_unit);
break;
} else {
$prices[] = array( 'period' => $level->level_period, 'amount' => $level->level_price, 'type' => $level->sub_type, 'unit' => $level->level_period_unit);
}
}
if(!empty($prices)) {
return $prices;
} else {
return false;
}
}
je veux donc entrer une nouvelle ligne dans la table avec un subtype finite et une durée qui va du jour de l'enregistrement à la fin de l'année
ne pouvant inserer dans la table une level_period ( nombre de jour l’abonnement (pour les autres cas dans la table j'ai 365) dynamique.
Je pensais redefinir au moment de la selection la valeur du $level->level_period mais je me heurte à ma connaissance partielle du php ( je suis un abaper

) me limite.
Un expert peut il me donner un coup de pouce s'il vous plait sur comment redéfinir une valeur de l'array?
Ensuite existe-t-il une fonction qui me permettent d'evaluer le nombre de jour à la fin de l'année?
Merci d'avance....
Bonjour je suis en train d'essayer de modifier un plugin buddypress ( membership). Je plugin permet de créer differents niveaux d'abonement ( journalier, mensuel ou annuel).
J'aimerai crée un niveau qui finisse toujours le 31/12 de l'année en cours.
la classe subscription a été crée et elle possède de nombreuses fonctions.
[code]if(!class_exists('M_Subscription')) {
class M_Subscription {
var $id = false;
var $db;
var $tables = array('membership_levels', 'membership_rules', 'subscriptions', 'subscriptions_levels', 'membership_relationships', 'subscriptionmeta');
var $membership_levels;
var $membership_rules;
var $subscriptions;
var $subscriptions_levels;
var $membership_relationships;
var $subscriptionmeta;
// if the data needs reloaded, or hasn't been loaded yet
var $dirty = true;
var $subscription;
var $levels = array();
var $levelorder = array();
function __construct( $id = false ) {
global $wpdb;
$this->db =& $wpdb;
foreach($this->tables as $table) {
$this->$table = membership_db_prefix($this->db, $table);
}
$this->id = $id;
}
function M_Subscription( $id = false ) {
$this->__construct( $id );
}[/code]
le prix et durée se determinent ainsi
[code] function get_pricingarray() {
$levels = $this->get_levels();
$prices = array();
foreach( (array) $levels as $key => $level ) {
if($level->sub_type == 'indefinite') {
// This will be the last item in any list
$prices[] = array( 'period' => $level->level_period, 'amount' => $level->level_price, 'type' => $level->sub_type, 'unit' => $level->level_period_unit);
break;
} elseif($level->sub_type == 'serial') {
// This will be the last item in any list
$prices[] = array( 'period' => $level->level_period, 'amount' => $level->level_price, 'type' => $level->sub_type, 'unit' => $level->level_period_unit);
break;
} else {
$prices[] = array( 'period' => $level->level_period, 'amount' => $level->level_price, 'type' => $level->sub_type, 'unit' => $level->level_period_unit);
}
}
if(!empty($prices)) {
return $prices;
} else {
return false;
}
}[/code]
je veux donc entrer une nouvelle ligne dans la table avec un subtype finite et une durée qui va du jour de l'enregistrement à la fin de l'année
ne pouvant inserer dans la table une level_period ( nombre de jour l’abonnement (pour les autres cas dans la table j'ai 365) dynamique.
Je pensais redefinir au moment de la selection la valeur du $level->level_period mais je me heurte à ma connaissance partielle du php ( je suis un abaper :D ) me limite.
Un expert peut il me donner un coup de pouce s'il vous plait sur comment redéfinir une valeur de l'array?
Ensuite existe-t-il une fonction qui me permettent d'evaluer le nombre de jour à la fin de l'année?
Merci d'avance....