woocommerceの注文から情報を取り出し、変数に入れてSQLデータベースに書き込もうとしています。データを適切に取得して処理することができます。私はそれを手動で実行するとデータベースに書き込むことさえできました。支払い時にSQLデータベースにデータを書き込む
私はまだスクリプトで動作するアクションフックを得ることができないようです。
私はここで似たようなことをする人々のために私が見たことに従っていますが、それまではそれは働いていません。私は主に3つの質問があります。
は私が
が、私はどこか別の関数を呼び出す必要がありますか、関数の内部で注文IDを定義することができますが、
が適切に設定されたこのアクションフックです支払いが処理された後に実行されます。
機能は以下の通りです:
add_action('woocommerce_payment_complete', 'returnAttributesFromCheckout');
function returnAttributesFromCheckout ($order_id) {
$connection = mysqli_connect('localhost', 'root', '', 'apptest');
if(!$connection) {
die('ded' . mysqli_error($connection));
}
global $woocommerce, $post;
$order = new WC_Order($order_id);
foreach ($order->get_items() as $item_id => $item_data) {
// Get an instance of corresponding the WC_Product object
$product = $item_data->get_product();
$rank = $product->get_attribute('pa_rank');
$money = $product->get_attribute('pa_money');
$spawner = $product->get_attribute('pa_spawner');
$permission = $product->get_attribute('pa_permission');
$kit = $product->get_attribute('pa_kit');
$crate = $product->get_attribute('pa_crate');
$tag = $product->get_attribute('pa_stag');
$duration = $product->get_attribute('pa_duration');
$d = strtotime("+ $duration Months");
$endDate = date("d/m/Y", $d);
$query = "INSERT INTO checkout(rank, money) ";
$query .= "VALUES('$rank', '$money')";
$result = mysqli_query($connection, $query);
if(!$result) {
die('its dead jim' . mysqli_error($connection));
}
}
}
はどのように正確に私はそれが正しく付けられていることを確認します – Strawberry